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
相关产品推荐
相关产品推荐

