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

GitLab CI中手动运行前置作业后能否自动触发后续作业?

实现手动触发单元测试后自动部署的GitLab CI配置修改

要满足你“手动运行unit-test-job后自动执行deploy-job”的需求,只需通过GitLab CI的when、needs和rules配置实现关联与触发逻辑,具体修改如下:

关键配置说明

  • 给unit-test-job添加when: manual,强制该作业只能手动触发
  • 给deploy-job配置needs关联unit-test-job,确保部署作业仅在单元测试作业完成后才会执行
  • 用rules限制deploy-job仅当流水线由手动触发时运行(对应手动启动unit-test-job的场景)

修改后的完整配置

stages:        
  - test
  - deploy

unit-test-job:
  stage: test 
  script:
    - echo "Running unit tests... This will take about 60 seconds."
  allow_failure: true
  when: manual # 设置为手动触发作业

deploy-job:    
  stage: deploy 
  environment: production
  script:
    - echo "Deploying application..."
    - echo "Application successfully deployed."
  needs: [unit-test-job] # 依赖unit-test-job完成
  rules:
    - if: '$CI_PIPELINE_SOURCE == "web"' # 仅当流水线通过web界面手动触发时运行
      when: on_success

配置完成后,只有当你手动启动unit-test-job后,deploy-job会在单元测试作业完成后自动执行;如果是代码推送等自动触发的流水线,deploy-job不会运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 17:10:33