CI管道在我工作的Gitlab存储库中的每次提交上运行。有没有办法禁用它,仅在对master分支的打开合并请求上运行CI管道?
感谢您的帮助。谢谢。
答案 0 :(得分:4)
在2020年进行更新,因为使用only
和except
的解决方案不适合使用:https://docs.gitlab.com/ee/ci/yaml/#onlyexcept-basic
仍然在.gitlab-ci.yml
中,您现在应该使用rules
:请参见https://docs.gitlab.com/ee/ci/yaml/#rules
我只是在构建作业上设置了此规则,然后该作业被“阻止”,然后等待用户界面中的手动触发。
rules:
- when: manual
并不是说我们可以创建更高级的规则,条件是如果看到git标签就会触发示例。
https://docs.gitlab.com/ee/ci/yaml/#exclude-jobs-with-rules-from-certain-pipelines
答案 1 :(得分:2)
是的,但是只有在管道中的每个作业上都设置了它。
https://docs.gitlab.com/ee/ci/yaml/#only-and-except-simplified
.text
该作业将仅在属于合并请求的提交上运行,而不是每次将提交推送到分支上。如果将每个作业都设置为此设置,则管道将永远不会运行。
答案 2 :(得分:1)
不。 (还没 !) 您可以在此处关注预期的功能开发。
https://gitlab.com/gitlab-org/gitlab-ce/issues/23902
但是,您可以使用“ maofr”的代码自动触发管道
https://gitlab.com/gitlab-org/gitlab-ce/issues/23902#note_88958643
答案 3 :(得分:1)
当前没有配置选项可以执行此操作。这里有一些可以用来“禁用”管道构建的东西。
[ci skip]
不会触发推送管道。except
和only
选项。为了避免这种情况下的重复,您可以使用Anchors。更新:GitLab 11.7
当推送到GitLab时,您可以通过将ci.skip选项传递给推送命令来跳过触发管道:git push -o ci.skip
答案 4 :(得分:0)
您只需将[ci skip]
添加到提交消息中,构建将被跳过