gitlab - 当 GItlab CI 上一阶段失败时阻止部署

标签 gitlab continuous-integration yaml config

我在项目的 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/

相关文章:

jenkins - 在 jenkins 中配置 gitlab 时,Gitlab Host URL 意味着什么?

node.js - 从自己的 gitlab 服务器安装 Node 模块

git - 我可以在提出 merge 请求后推送到分支吗?

email - 如何在电子邮件中使用 Hudson "Parameterized Build"值

continuous-integration - 如何将 Play 与自定义模块和持续集成一起使用

ruby - 解析和编写 YAML

css - yaml css 输入字段和 jquery 日期字段

kubernetes - 在 Kubernetes 上使用 Helm 部署 GitLab

java - TeamCity - 将已发布的工件复制到网络位置

amazon-web-services - CloudFormation 未知标签!<!Cidr>