在一个项目中,我正在运行这些作业的两个阶段:
build
compile & testgenerate sonar reportdeploy
deploy to staging environment[手动的]deploy to production[手动的]该阶段的作业deploy取决于作业的输出compile & test。然而,generate sonar report在我可以开始该阶段的任何工作之前,不需要完成该工作deploy。尽管如此,GitLab 坚持认为该build阶段的所有作业都已完成,然后我才能启动该deploy阶段的任何作业。
有没有办法告诉 GitLab 该generate sonar report作业不应阻塞后续的管道阶段?我已经尝试allow_failure: true过这项工作,但这似乎没有达到预期的效果。这项工作需要很长时间才能完成,我真的不想一直等待才能部署。
从我的角度来看,这取决于你的阶段语义。您应该尝试确定流程中最重要的是什么:阶段清晰还是完成工作。
GitLab 有许多方便的功能,例如needs关键字,您可以使用它来指定依赖图上的直接边。
stages:
- build
- deploy
build:package:
stage: build
script:
- echo "compile and test"
- mkdir -p target && echo "hello" > target/file.txt
artifacts:
paths:
- ./**/target
build:report:
stage: build
script:
- echo "consume the target artifacts"
- echo "waiting for 120 seconds to continue"
- sleep 120
- mkdir -p target/reports && echo "reporting" > target/reports/report.txt
artifacts:
paths:
- ./**/target/reports
deploy:
stage: deploy
needs: ["build:package"]
script:
- echo "deploy your package on remote site"
- cat target/file.txt
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3249 次 |
| 最近记录: |