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

GitLab CI配置:如何让任务B在任务A完成后自动启动?

实现GitLab CI中手动触发任务A后自动启动任务B的配置方案

我来帮你搞定这个需求!要实现手动触发任务A完成后自动启动任务B,核心是利用GitLab CI的needs关键字建立任务间的依赖关系,同时调整任务B的触发条件,具体配置如下:

stages:
  - test
  - build
  - deploy

# 这里省略你已有的test、build阶段任务配置

A:
  stage: deploy
  when: manual
  script:
    - echo "Deploy A"
  only:
    - master

B:
  stage: deploy
  needs: [A]  # 声明任务B依赖任务A
  when: on_success  # 当依赖的任务A成功完成时自动触发
  script:
    - echo "Deploy B"
  only:
    - master

关键配置说明:

  • needs: [A]:这个关键字会让任务B和任务A建立依赖关系,GitLab CI会确保任务B只有在任务A执行完成后才会启动。即使两个任务都在deploy阶段,依赖关系也会让它们按顺序执行,而非并行。
  • when: on_success:把任务B原来的manual触发改为on_success,意味着只要任务A手动触发并成功完成,任务B就会自动启动执行。如果任务A执行失败,任务B会被跳过。
  • 任务A依然保留when: manual,所以它还是需要你手动去触发启动。

注意事项:

  • 确保你的GitLab实例版本在12.0及以上(needs关键字从这个版本开始支持,现在主流版本都满足)。
  • 如果需要任务B在任务A失败时也执行,可以把when改为always,不过通常部署场景下我们只希望A成功后再执行B。
  • 在GitLab流水线页面中,当你手动启动任务A并完成后,任务B会自动进入执行状态,不需要再手动点击触发。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 04:18:47