如何在gitlab中禁用自动管道

问题描述 投票:0回答:3

由于 gitlab 限制了 gitlab CI/CD 上的免费套餐分钟数。我想在提交后禁用管道的自动启动。

我只想通过在 gitlab 界面中单击来手动运行管道

我该怎么做?

gitlab gitlab-ci
3个回答
39
投票

您可以通过以下步骤禁用项目中的 Gitlab CI/CD Pipelines:

  1. 转到项目的设置>>常规>>可见性、项目功能、权限
  2. 展开存储库部分
  3. 启用或禁用 CI/CD 切换
  4. 然后,单击保存更改

您可以验证同样的情况,CI/CD 选项已从左侧面板中消失。



我现在已经参考问题更新了答案:

在提交消息中添加

[ci skip]
[skip ci]
不会在推送时触发管道。

更多参考:https://docs.gitlab.com/ee/ci/yaml/#skip-pipeline


17
投票

您可以将以下代码添加到您的.gitlab-ci.yml中:

workflow:
  rules:
    - if: '$CI_PIPELINE_SOURCE == "web"'

更多参考:https://docs.gitlab.com/ee/ci/yaml/README.html#workflow https://docs.gitlab.com/ee/ci/yaml/README.html#common-if-clauses-for-rules


0
投票

我只是想澄清一下 Lucas Lucas Hillesheim (@lucas-hillesheim) 的回答。

workflow:
  rules:
    - if: '$CI_PIPELINE_SOURCE == "web"'

CI/CD 可以由不同的事件触发。 Gitlab 建议使用

workflow
关键字来控制此类行为。仅当用户按下网页上的按钮时,
$CI_PIPELINE_SOURCE == "web"
才会运行管道。所有其他事件,例如
push
merge_request_event
等都不会导致管道运行。

事实上,这是防止自动 CI/CD 运行的最佳方法,因为当我需要使用

only
/
except
来执行特定作业时 - 只是解决方法。首先,因为问题是如何不每次都运行 CI/CD,但通过作业规则,管道本身无论如何都会运行。其次,如果我有很多工作之间存在复杂的
needs
- 使用更多条件只是为了开始工作是一场噩梦。第三,它仍然导致管道网页上充斥着未完成/取消的管道。

© www.soinside.com 2019 - 2024. All rights reserved.