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

GitLab CI中单独使用when:never的作用及无它时的行为疑问

GitLab CI末尾单独使用when: never的意义及移除后的影响

当前配置的逻辑解析

GitLab CI的rules是按从上到下顺序匹配的,只要命中第一条符合条件的规则,就会停止后续判断:

  • 第一条规则:当SOME-CONDITION成立时,该任务会被设置为手动触发状态(需要人工点击才会运行);
  • 第二条规则:单独使用when: never时,等价于无条件触发这条规则——也就是说,只要没匹配到第一条的情况,这个任务直接被排除在流水线之外,不会被创建。

直白点说,这个配置的核心效果是:只有满足指定条件时,任务才会以手动形式出现在流水线中;其他所有场景下,该任务根本不会出现在流水线里。

移除- when: never后的行为变化

如果删掉这条兜底规则,当SOME-CONDITION不满足时,由于没有匹配到任何自定义规则,GitLab会触发默认行为:任务会自动被加入流水线并自动执行(除非你在only/except或全局配置里做了额外限制)。

举个实际场景对比:

  • 原配置:假设SOME-CONDITION是$CI_COMMIT_BRANCH == 'main',那只有合并到主分支时,才会出现手动部署任务;其他分支/场景下,部署任务直接消失。
  • 移除后:主分支仍需手动部署,但其他分支会自动生成并运行部署任务——这大概率不是预期结果,所以这条when: never的作用就是杜绝任务在非目标场景下自动执行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 19:20:37