禁用Gitlab中每个提交的管道,仅在打开合并请求时运行它

时间:2018-07-19 20:53:36

标签: gitlab gitlab-ci

CI管道在我工作的Gitlab存储库中的每次提交上运行。有没有办法禁用它,仅在对master分支的打开合并请求上运行CI管道?

感谢您的帮助。谢谢。

5 个答案:

答案 0 :(得分:4)

在2020年进行更新,因为使用onlyexcept的解决方案不适合使用: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]不会触发推送管道。
  • 在管道内的所有作业上使用exceptonly选项。为了避免这种情况下的重复,您可以使用Anchors

更新:GitLab 11.7

当推送到GitLab时,您可以通过将ci.skip选项传递给推送命令来跳过触发管道:git push -o ci.skip

答案 4 :(得分:0)

您只需将[ci skip]添加到提交消息中,构建将被跳过

https://gitlab.com/gitlab-org/gitlab-ce/issues/14499