Gitlab CI/CD Pipeline 生成错误“没有匹配的文件。确保工件路径相对于工作目录”

问题描述 投票:0回答:1

我是初学者,这是我第一次为我的 maven java selenium 项目构建 CI/CD 管道,并尝试通过在本地计算机中安装运行器来本地运行管道。 每次运行管道时,我都会收到一条错误,指出“警告:gosecuri/target/surefire-reports/TEST-*.xml:没有匹配的文件。确保工件路径相对于工作目录(C:\GitLab-Runner uilds\CXWJTzxhV\ssc-onyx-qa\ssc-onyx-test-automation) 错误:没有要上传的文件”请有人帮助我

管道代码如下:-

stages:
  - test
image: "maven:3.8.7"
variables:
  MAVEN_OPTS: >-
    -Dhttps.protocols=TLSv1.2 -Dmaven.repo.local=$CI_PROJECT_DIR/.m2/repository
    -Dorg.slf4j.simpleLogger.showDateTime=true -Djava.awt.headless=true
  MAVEN_CLI_OPTS: "--batch-mode --errors --fail-at-end --show-version"
cache:
  paths:
    - .m2/repository/
    - target/
test-job:
  stage: test
  services:
    - selenium/standalone-chrome
  script:
    - echo "Compiling the code..."
    - mvn --version
    - mvn "$MAVEN_CLI_OPTS" clean test -Dhost=selenium__standalone-chrome
    - Get-Command zip
  artifacts:
    when: always
    paths:
      - target/
    reports:
      junit:
        - gosecuri/target/surefire-reports/TEST-*.xml
gitlab gitlab-ci pipeline gitlab-ci-runner cicd
1个回答
0
投票

您正在指示 Gitlab 在此目录中查找 xml 文件:

gosecuri/target/surefire-reports/TEST-*.xml
,位于此处管道文件的末尾:

reports:
      junit:
        - gosecuri/target/surefire-reports/TEST-*.xml

Gitlab 告诉你它的工作目录是

C:\GitLab-Runner\builds\CXWJTzxhV\0\ssc-onyx-qa\ssc-onyx-test-automation
。这些是完全不同的路径,因此运行程序无法找到您指向的文件。

Gitlab-Runner 的工作目录与您所在的工作目录不同。它可以访问您的文件,并且如果您使用相对文件路径,则能够确定您将其指向哪个文件。如果您在 gitlab.com 上运行管道,这会更直观,因为更清楚的是,他们正在使用与您的计算机不同的隔离环境,但您可以将其想象为本地计算机的情况相同跑步者也是。 Runner 在您的计算机上使用隔离环境,可以访问您在 Gitlab 上的文件。

如果您坚持使用硬编码路径,您可以将其设置为相对于

C:\GitLab-Runner\builds\CXWJTzxhV\0\ssc-onyx-qa\ssc-onyx-test-automation
并找出目录开始与文件夹中的目录重叠的位置,但这将在您的整个目录中使用大量“ls”命令管道,不是最佳实践。

© www.soinside.com 2019 - 2024. All rights reserved.