CI管道在工作时在我的Gitlab存储库中的每个提交上运行。有没有办法禁用它,并且仅在对master分支的打开合并请求上运行CI管道?
任何帮助表示赞赏。谢谢。
Ver*_*_us 11
您可以在 .gitlab-ci.yaml 的开头添加类似的内容
workflow:
rules:
- if: "$CI_COMMIT_BRANCH"
when: never
- if: '$CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "master"'
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请参阅合并请求管道
更新在2020年,因为与解决方案only,并except为弃用的候选人:https://docs.gitlab.com/ee/ci/yaml/#onlyexcept-basic
仍然在.gitlab-ci.yml你现在应该使用rules:见https://docs.gitlab.com/ee/ci/yaml/#rules
我只是在我的构建作业上设置此规则,该作业被“阻止”并等待来自 UI 的手动触发。
rules:
- when: manual
Run Code Online (Sandbox Code Playgroud)
并不是说我们可以创建更高级的规则和条件来触发,例如,如果我们看到一个 git 标签。
https://docs.gitlab.com/ee/ci/yaml/#exclude-jobs-with-rules-from-certain-pipelines
是的,但前提是您在管道中的每个作业上都设置了它。
https://docs.gitlab.com/ee/ci/yaml/#onlyexcept-basic
job:
script: echo 'test'
only:
- merge_requests
Run Code Online (Sandbox Code Playgroud)
该作业只会在作为合并请求一部分的提交上运行,而不是每次将提交推送到分支上。如果您将每个作业都设置为该设置,则管道将永远不会运行。
小智 1
不。(还没有!)您可以在此处关注预期的功能开发。
https://gitlab.com/gitlab-org/gitlab-ce/issues/23902
但是,您可以使用“maofr”的代码自动触发管道
https://gitlab.com/gitlab-org/gitlab-ce/issues/23902#note_88958643
| 归档时间: |
|
| 查看次数: |
5990 次 |
| 最近记录: |