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

GitLab CI手动阶段后触发下游流水线配置问题求助

GitLab CI 手动部署后触发测试阶段的配置修复

问题根源

  1. 阶段定义语法错误:原配置中stage:应为复数stages:,否则GitLab无法正确识别阶段顺序
  2. deploy:dev未配置when: manual,导致构建完成后自动执行部署,进而触发后续测试阶段
  3. stop:dev存在语法错误,缺少冒号,无法被GitLab正确识别为Job
  4. test:dev未设置依赖规则,默认会在deploy-dev阶段完成后立即触发,忽略部署是否为手动执行

修改后的完整配置

stages:
    - build-dev
    - deploy-dev
    - test-dev 

build:dev:
    stage: build-dev
    script:
        - my_script
    except:
        - master

deploy:dev:
    <<: *deploy-dev
    stage: deploy-dev
    variables:
        <<: *dev-variables
    environment:
        name: review/$CI_COMMIT_REF_NAME
        on_stop: stop:dev   
    when: manual  # 标记为手动触发的部署任务
    except:
        - master

stop:dev:  # 修复语法错误,添加冒号
    stage: deploy-dev
    <<: *shutdown_script
    when: manual
    environment:
        name: review/$CI_COMMIT_REF_NAME
        action: stop

test:dev:
    stage: test-dev
    trigger: "qa/my_repo_qa"
    needs: [deploy:dev]  # 仅在deploy:dev成功完成后才触发测试任务

关键修改说明

  • 修正阶段定义:将stage:改为stages:,确保GitLab正确解析阶段顺序
  • 部署任务手动触发:给deploy:dev添加when: manual,避免部署自动执行
  • 修复停止任务语法:给stop:dev补上冒号,保证Job能被正常识别
  • 测试任务依赖控制:添加needs: [deploy:dev],让测试任务仅在手动部署成功后才触发,不会受stop:dev手动任务的影响

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 06:27:28