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

GitLab CI配置:让任务跳过手动触发任务在指定任务后执行

解决方案

直接通过给report:sonarqube任务添加needs关键字,指定仅依赖deploy:development即可实现需求,修改后的完整配置如下:

stages:
  - test
  - assemble
  - deploy
  - report

deploy:development:
  environment: development
  resource_group: deployment
  rules:
    - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
  script:
    - ./deploy.sh
  stage: deploy

deploy:production:
  environment: production
  resource_group: deployment
  rules:
    - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
      when: manual
  script:
    - ./deploy.sh
  stage: deploy

report:sonarqube:
  needs: [deploy:development]  # 核心修改:仅等待开发环境部署完成
  rules:
    - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
  script:
    - ./gradlew sonar
  stage: report

配置说明:

  • needs关键字的作用:让report:sonarqube跳过等待整个deploy阶段,只在deploy:development成功执行完成后立即启动,完全不依赖deploy:production的状态(不管它是否被手动触发)。
  • 保持生产部署的约束:deploy:production依然保留手动触发规则,且未添加allow_failure: true,因此一旦手动触发后执行失败,整个流水线会被标记为失败,符合生产部署不能失败的要求。
  • 资源组依然生效:resource_group: deployment确保deploy:development和deploy:production不会同时执行,避免部署冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 23:07:19