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

在Gitlab中为每个提交禁用管道,并且仅在打开合并请求时运行它,gitlab,gitlab-ci,Gitlab,Gitlab Ci,CI管道在我的Gitlab存储库工作时的每次提交上运行。有没有办法禁用该功能并仅在主分支的开放合并请求上运行CI管道 感谢您的帮助。谢谢。没有(还没有!) 您可以在这里进行预期的功能开发 但是,您可以使用“maofr”的代码自动触发管道 目前没有进行此操作的配置选项。下面是一些可以用来“禁用”管道构建的东西 在提交消息中添加[ci skip]不会触发推送时的管道 在管道内的所有作业上使用除外和仅选项。在这种情况下,为了避免重复,可以使用 更新:GitLab 11.7 当推送到GitLab时

CI管道在我的Gitlab存储库工作时的每次提交上运行。有没有办法禁用该功能并仅在主分支的开放合并请求上运行CI管道

感谢您的帮助。谢谢。

没有(还没有!) 您可以在这里进行预期的功能开发

但是,您可以使用“maofr”的代码自动触发管道


目前没有进行此操作的配置选项。下面是一些可以用来“禁用”管道构建的东西

  • 在提交消息中添加
    [ci skip]
    不会触发推送时的管道
  • 在管道内的所有作业上使用
    除外
    选项。在这种情况下,为了避免重复,可以使用
更新:GitLab 11.7


当推送到GitLab时,您可以通过将ci.skip选项传递给push命令来跳过触发管道:
git push-o ci.skip
是,但前提是您在管道中的每个作业上都设置了它


该作业将仅在作为合并请求一部分的提交上运行,而不是每次推送提交到分支上。如果将每个作业都设置为此设置,则管道将永远不会运行。

您只需将
[ci skip]
添加到提交消息,生成将被跳过


在2020年更新,因为只有
除外的解决方案可能会被弃用:

仍然在
.gitlab ci.yml
中,您现在应该使用
规则:请参阅

我只是在构建作业上设置了这个规则,作业被“阻止”,并等待UI的手动触发

 rules:
   - when: manual
并不是说我们可以创建更高级的规则,并附带触发条件,例如,如果我们看到一个git标记


您好,也许您可以用我下面的回答“更新”您的答案。这看起来是真正的好答案。。。我们不能添加一些通用的
规则来阻止所有CI运行吗?我想你不能?最好设置一些通用规则,并使用yaml锚语法将其包含在每个作业的规则中。Gitlab将评估每个作业,而不是整个管道,因此您不能只设置一个通用规则。
 rules:
   - when: manual