Help us learn about your current experience with the documentation. Take the survey.

部署审批

  • Tier: Premium, Ultimate
  • Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated

你可以为部署到受保护环境要求额外的审批。在所有必需的审批获得之前,部署会被阻塞。

使用部署审批来满足测试、安全或合规流程的需求。例如,你可能希望对部署到生产环境要求审批。

配置部署审批

你可以为项目中的受保护环境配置部署审批。

先决条件:

  • 要更新环境,你必须至少拥有 Maintainer 角色。

要为项目配置部署审批:

  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. 添加所需的 审批规则

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

添加多个审批规则

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

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

所有部署到该环境的作业都会被阻塞,在运行前等待审批。 确保所需的审批数量少于允许部署的用户数量。

每个部署中,用户只能给出一次审批,即使该用户是多个审批者组的成员。问题 457541 提议更改此行为,以便同一用户可以从不同的审批者组对同一部署给出多次审批。

部署作业被批准后,你必须手动运行该作业

允许自审批

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

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

要允许部署作业的自审批:

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

批准或拒绝部署

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

  • 批准部署以允许其继续进行。
  • 拒绝部署以阻止其进行。

先决条件:

  • 你有权部署到受保护环境。

要批准或拒绝部署:

  1. 在左侧边栏,选择 搜索或跳转 并找到你的项目。
  2. 选择 运维 > 环境
  3. 选择环境的名称。
  4. 找到部署并选择其 状态徽章
  5. 可选。添加描述你批准或拒绝部署原因的注释。
  6. 选择 批准拒绝

你也可以使用 API

每个部署中,你只能给出一次审批,即使你是多个审批者组的成员。问题 457541 提议更改此行为,以便同一用户可以从不同的审批者组对同一部署给出多次审批。

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

查看部署的审批详情

先决条件:

  • 你有权部署到受保护环境。

部署到受保护环境只有在所有必需的审批获得批准后才能继续进行。

要查看部署的审批详情:

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

显示审批状态详情:

  • 有资格的审批者
  • 已批准的审批数量和所需的审批数量
  • 已批准审批的用户
  • 审批或拒绝的历史记录

查看被阻塞的部署

审查你的部署状态,包括部署是否被阻塞。

要查看你的部署:

  1. 在左侧边栏,选择 搜索或跳转 并找到你的项目。
  2. 选择 运维 > 环境
  3. 选择正在部署到的环境。

带有 blocked 标签的部署是被阻塞的。

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

相关主题