我正在使用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
答案 0 :(得分:3)
我通过在when: always
阶段结束时添加pages
解决了这个问题。现在,无论从属阶段的退出代码如何,它都将执行该阶段。