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

GitLab CI/CD依赖任务失败后手动部署任务自动执行问题求助

GitLab CI/CD 手动部署任务异常自动执行问题

我们公司规定容器部署更新前必须执行漏洞扫描,因此在GitLab CI/CD流水线中设置了先运行扫描任务,再通过手动步骤将容器部署到OpenShift。但目前遇到异常情况:当扫描任务失败时,即便中间其他任务被跳过,部署步骤仍会自动触发执行。

流水线配置代码

# scan job, 
aqua:dev:
  extends: .scan
  rules:
    - if: '$CI_COMMIT_BRANCH != "master"'
      allow_failure: false
  retry: 2
  needs:
    - docker:dev

# blocker step I added just for testing, this gets skipped when previous job fails
blocker:dev:
  extends: .blocker
  needs:
    - aqua:dev
  rules:
    - if: $CI_COMMIT_BRANCH != "master" && $CI_COMMIT_BRANCH != "DEV"

# Deployment step, runs despite needs/dependencies jobs failing
openshift:sbx:
  rules:
    - if: $CI_COMMIT_BRANCH != "master" && $CI_COMMIT_BRANCH != "DEV"
      when: manual
  retry: 2
  needs:
    - aqua:dev
    - blocker:dev
  dependencies:
    - aqua:dev
    - blocker:dev

排查尝试与疑问

我已经尝试了多种方案:

  • 全局设置allow_failure: false
  • 添加dependencies配置替代仅使用needs
    但都无法阻止手动任务自动执行。根据GitLab文档说明,仅通过needs定义依赖关系应该就能实现前置任务失败时阻止后续任务触发,不清楚哪里存在遗漏。

最终解决情况

发布问题一周后,公司将GitLab版本从14.4.1升级至14.9.5,该问题自动恢复正常。推测是旧版本的Bug或者特性变更导致的异常。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 18:18:18