GitLab CI规则失效:指定作业始终被移出流水线问题求助
GitLab CI 规则配置错误分析与修复
问题原因
你当前的rules配置仅包含一条规则:当$CI_PIPELINE_SOURCE == "trigger"时跳过作业,但GitLab CI的rules逻辑是按顺序匹配,只有匹配到允许执行的规则时,作业才会被加入流水线。当触发源不是trigger时,没有任何规则匹配,作业会默认被排除,最终导致无论什么场景都不会运行。
修复方案
需要添加一条默认规则,允许非trigger场景下作业正常执行,修改后的配置如下:
rules: - if: '$CI_PIPELINE_SOURCE == "trigger"' when: never - when: always # 也可以替换为 if: '$CI_PIPELINE_SOURCE != "trigger"',逻辑等价
补充说明
when: always会在前面的规则不匹配时,无条件将作业加入流水线,完全符合你的预期:仅在trigger触发时跳过作业,其他场景正常执行。- 用
if: '$CI_PIPELINE_SOURCE != "trigger"'替代when: always,逻辑更明确,但实际效果一致。
内容的提问来源于stack exchange,提问作者titiyoyo
相关产品推荐
相关产品推荐

