部署批准

在部署到某些受保护的环境(例如,生产环境)之前要求额外的批准可能很有用。部署前批准要求对于适应每次部署之前必须进行的测试、安全性或合规性流程很有用。

当受保护的环境需要一个或多个批准时,该环境的所有部署都会被阻止,并在运行前等待所需的来自 Allowed to Deploy 列表的批准。

配置部署审批

你可以在项目中要求对受保护环境进行部署审批。

先决条件:

  • 要更新环境,你必须至少具有维护者角色。

要为项目配置部署审批:

  1. 在你项目的 .gitlab-ci.yml 文件中创建一个部署作业:

    stages:
      - deploy
    
    production:
      stage: deploy
      script:
        - 'echo "Deploying to ${CI_ENVIRONMENT_NAME}"'
      environment:
        name: ${CI_JOB_NAME}
        action: start
    

    作业无需手动触发(when: manual)。

  2. 添加需要的审批规则

项目中的环境在部署之前就会需要审批。

添加多个批准规则

  • 一般可用于 15.0 版本。删除功能标志 deployment_approval_rules
  • UI 配置引入于 15.11 版本。

添加多个审批规则以控制谁可以批准和执行部署作业。

要配置多个审批规则,使用 CI/CD 设置。你还可以使用 API

部署到环境中的所有作业都会被阻止并等待审批通过。确保所需的审批数量小于允许部署的用户数量。

After a deployment job is approved, you must run the job manually.

允许自批准

  • 引入于极狐GitLab 15.8。
  • 由于使用性问题,自动审批在极狐GitLab 15.2 中被移除。

默认情况下,触发部署流水线的用户不能批准部署作业。

极狐GitLab 管理员可以批准或拒绝所有部署。

要对部署允许自审批:

  1. 在左侧导航栏,选择 搜索或前往 并找到你的项目。
  2. 选择 设置 > CI/CD
  3. 展开 受保护环境
  4. 审批选项 中,选择 允许流水线触发器批准部署 复选框。

批准或拒绝部署

在一个具有多审批规则的环境中,你可以:

  • 批准部署以允许其进行。
  • 拒绝部署以防止其进行。

先决条件:

  • 你需要部署到受保护环境的权限。

要批准或拒绝一个部署:

  1. 在导航栏左侧,选择 搜索或前往 并找到你的项目。
  2. 选择 运维 > 环境
  3. 选择环境的名称。
  4. 找到部署并选择其 状态徽标
  5. 可选。添加一个评论,描述你批准或拒绝部署的原因。
  6. 选择 批准拒绝

你还可以查看使用 API

部署被批准后,对应的部署作业不会自动运行。

查看部署的审批详情

先决条件:

  • 你需要有部署到受保护环境的权限。

只有所有必须的审批通过后,向受保护环境的部署才能够进行。

要查看部署的审批详情:

  1. 在左侧导航栏,选择 搜索或前往 并找到你的项目。
  2. 选择 运维 > 环境
  3. 选择环境的名称。
  4. 找到部署并选择其 状态徽标

审批状态详情会展示:

  • 符合条件的审批人
  • 授权的审批者数量以及需要的审批者数量
  • 授权审批的用户
  • 批准或拒绝的历史

查看被阻止的部署

Review the status of your deployments, including whether a deployment is blocked.

要查看你的部署:

  1. 在左侧导航栏,选择 搜索或前往 并找到你的项目。
  2. 选择 运维 > 环境
  3. 选择要部署的环境。

A deployment with the blocked label is blocked. 具有 被阻止 标签的部署会被阻止。

要查看你的部署,你还可以使用 APIstatus 字段指示部署是否被阻止。