Gitlab CI - 将失败的测试结果发布到页面

Gitlab CI - Publish Failed Test Results to Pages

我正在使用 Gradle 创建一个简单的 java 项目,该项目生成测试报告(即 BDD Cucumber、JUnit 等)。此项目部署到 Gitlab,其中项目是作为 Gitlab CI 过程的一部分构建的。

我的 JUnit 报告是在相对于项目路径的文件夹 build/reports/tests/test/ 中生成的(作为 index.html 和一些 CSS 文件等)。

如何配置我的 .gitlab-ci.yml 以将 build/reports/tests/test/ 的内容发布到 Gitlab 页面 即使在我的测试用例失败后

这是我 .gitlab-ci.yml 中的内容:(可以找到我的存储库 HERE

版本 1:不向页面发布任何内容

image: java:8-jdk

stages:
  - test

before_script:
  - export GRADLE_USER_HOME=`pwd`/.gradle

test:
  stage: test
  script:
    - mkdir public
    - ./gradlew test

  artifacts:
    paths:
      - build/reports/tests/test/
  only:
  - master

after_script:
  - mv build/reports/tests/test/* public

版本 2:不执行 deploy 阶段,因为 test 失败。

image: java:8-jdk

stages:
  - test
  - deploy

before_script:
  - export GRADLE_USER_HOME=`pwd`/.gradle

test:
  stage: test
  script:
    - ./gradlew test

  artifacts:
    paths:
      - build/reports/tests/test/

 pages:
   stage: deploy
   dependencies:
     - test
   script:
   - mkdir public
   - mv build/reports/tests/test/* public
   artifacts:
     paths:
      - public

  only:
  - master

我通过在 pages 阶段的末尾添加 when: always 解决了这个问题。它现在执行该阶段,而不管依赖阶段的退出代码如何。