我希望在 GitLab CI 中有一个流程,其中所有测试都在合并请求中运行,一旦它们通过,分支将通过快进合并到 master
,因此无需重复再次进行相同的测试。因此,对 master
的提交可能没有关联的作业。例如使用以下 .gitlab-ci.yml
:
test:
script: mytest
rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
合并请求通过测试后,master
中的管道将失败并显示 "No stages / jobs for this pipeline."
。这可以通过选中框 Simulate a pipeline created for the default branch
在 CI Lint 页面中进行验证。有没有办法在没有作业时防止 CI 在 master
中失败?
答案 0 :(得分:0)
如果我理解正确,this 解决方案可能会对您有所帮助:
test:
rules:
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
script:
- mytest
- if: '$CI_PIPELINE_SOURCE == "merge_request_event" && $CI_COMMIT_BRANCH == "master"'
script:
- mytest
allow_failure: true
我希望这个解决方案可以帮助您或至少指导您找到解决方案!