You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Gitlab中保留rules配置的同时禁用detached分离流水线

解决方法

有两种方案可以在保留原有changes规则逻辑的前提下禁用detached流水线,推荐优先用全局workflow配置的方案,侵入性更低。

方案一:全局配置workflow规则(推荐)

在.gitlab-ci.yml文件最顶部添加如下workflow配置,直接从全局层面限定只有合法来源的流水线才会运行,从根源上避免detached流水线生成,完全不会影响你现有job的规则逻辑:

workflow:
  rules:
    # 允许合并请求流水线
    - if: $CI_PIPELINE_SOURCE == "merge_request_event"
    # 允许默认分支推送流水线
    - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
    # 允许Tag推送流水线
    - if: $CI_COMMIT_TAG
    # 允许定时任务流水线
    - if: $CI_PIPELINE_SOURCE == "schedule"
    # 允许页面手动触发流水线
    - if: $CI_PIPELINE_SOURCE == "web"

你可以根据自己的实际使用场景增删上面的触发条件,只要不额外加其他源的规则,detached流水线就不会再被触发。

方案二:修改现有Job的规则

如果你只需要针对这一个Job处理,不想改全局配置,可以给原有规则增加触发源限定,如下:

rules:
    - if: $CI_PIPELINE_SOURCE == "merge_request_event"
      changes:
        - foo/**/*
        - foo_scenarios/**/*
        - .gitlab-ci.yml
    - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
      changes:
        - foo/**/*
        - foo_scenarios/**/*
        - .gitlab-ci.yml
    # 其他你需要的触发场景可以按上面的格式追加

这个方案只会影响当前Job的触发逻辑,原有changes的文件匹配规则完全保留。


内容的提问来源于stack exchange,提问作者George Shuklin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 12:57:03