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

时间:2018-07-12 02:26:07

标签: gradle junit gitlab gitlab-ci gitlab-pages

我正在使用Gradle创建一个简单的Java项目,该项目会生成测试报告(即BDD Cucumber,JUnit等)。该项目已部署到Gitlab流程中,是在Gitlab CI过程中进行构建的项目。

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

即使在测试用例失败之后,如何配置.gitlab-ci.ymlbuild/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

1 个答案:

答案 0 :(得分:3)

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