gitlab - 当上一阶段在 GItlab CI 上失败时阻止部署
问题描述
我的项目中定义了以下阶段gitlab-config.yaml
:
stages:
- Prepare
- Report
- Static Analysis
- Unit Test
- Integration Test Prep
- Integration Tests
- Deploy
之前的阶段Deploy
是Integration Tests
,并且这个阶段内的所有作业都不允许失败(这是根据文档的默认设置)。
我有许多部署到不同环境的部署作业。我的生产部署作业使用以下逻辑:
rules:
- if: $DEPLOY_ENV == "production" && $CI_COMMIT_BRANCH == "production"
when: always
我对当前设置的问题是,即使不允许集成测试作业失败,即使它们失败了,仍然会到达生产部署阶段。
似乎使用always
覆盖了不允许前一阶段的作业失败的事实。
如果之前的任何集成测试作业失败,我如何防止生产部署作业运行?
解决方案
解决方案是使用on_success
而不是always
(docs):
rules:
- if: $DEPLOY_ENV == "production" && $CI_COMMIT_BRANCH == "production"
when: on_success
推荐阅读
- python - 如何分组和更新熊猫中的值?
- git - 从 git 历史记录中删除垃圾邮件
- python-3.x - 使用 pio.renderers.default = "" 在浏览器中呈现的替代方案
- maven - 为 Maven 模块使用不同的配置文件
- c# - 如何在 C# 中反序列化多个 json?
- r - R中观察数据的年龄计算
- azure-devops - 使用 Jenkins 进行 Azure Devops 配置
- c# - 如何在 C#/WPF 中正确关闭套接字连接
- python - 在 cmd 中使用 pip 安装 matplotlib 无需实际安装即可完成
- k6 - 如何在 K6 Check 中放置自定义消息