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

如何一键触发GitLab Pipeline所有阶段?无需逐个添加when:manual

你写的全局when:manual不生效是因为GitLab CI不支持全局设置这个属性——when是job级别的配置,只能针对单个job定义。下面给你两种符合需求的实现方式:

实现方案

方案1:让整个流水线手动触发(推荐)

如果你的需求是整个流水线必须手动点击才启动,启动后所有阶段自动依次执行,用workflow规则就能实现,不用给每个job加配置:

workflow:
  rules:
    - if: $CI_PIPELINE_SOURCE == 'web'  # 仅允许手动(网页触发)启动流水线
      when: always
    - when: never  # 禁止其他触发方式(比如push、tag)

stages:
  - test
  - deploy

test:
  script:
    - echo "执行测试"

deploy:
  script:
    - echo "执行部署"

这样配置后,只有你在GitLab网页上手动点击「运行流水线」,整个流水线才会启动,启动后test和deploy阶段会自动按顺序跑完,不用再手动确认每个阶段。

方案2:用模板统一配置手动触发(批量确认)

如果需要保留自动触发的可能,但所有job都需要手动确认才能执行,可以用extends定义一个通用模板,每个job继承它,避免重复写when:manual:

stages:
  - test
  - deploy

# 定义手动触发模板
.manual_job:
  when: manual

test:
  extends: .manual_job
  script:
    - echo "执行测试"

deploy:
  extends: .manual_job
  script:
    - echo "执行部署"

这样所有继承了.manual_job的job都会变成手动触发状态,点击「运行流水线」后,你可以批量勾选所有待确认的job,一次性触发执行,不用逐个点击确认。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 11:12:04