1

我正在创建一个简单的 java 项目,使用Gradle它生成一个测试报告(即 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:(我的仓库可以在这里找到)

版本 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
4

1 回答 1

6

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

于 2018-07-12T14:57:33.543 回答