我在项目的 gitlab-config.yaml
中定义了以下阶段:
stages:
- Prepare
- Report
- Static Analysis
- Unit Test
- Integration Test Prep
- Integration Tests
- Deploy
部署
之前的阶段是集成测试
,此阶段内的所有作业都不允许失败(根据 the docs 这是默认值)。
我有许多部署作业部署到不同的环境。我的生产部署作业使用以下逻辑:
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
关于gitlab - 当 GItlab CI 上一阶段失败时阻止部署,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68097315/