部署审批
- Tier: Premium, Ultimate
- Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
你可以为部署到受保护环境要求额外的审批。在所有必需的审批获得之前,部署会被阻塞。
使用部署审批来满足测试、安全或合规流程的需求。例如,你可能希望对部署到生产环境要求审批。
配置部署审批
你可以为项目中的受保护环境配置部署审批。
先决条件:
- 要更新环境,你必须至少拥有 Maintainer 角色。
要为项目配置部署审批:
-
在项目的
.gitlab-ci.yml文件中创建一个部署作业:stages: - deploy production: stage: deploy script: - 'echo "Deploying to ${CI_ENVIRONMENT_NAME}"' environment: name: ${CI_JOB_NAME} action: start该作业不需要是手动作业(
when: manual)。 -
添加所需的 审批规则。
项目中的环境在部署前需要审批。
添加多个审批规则
添加多个审批规则来控制谁可以审批和执行部署作业。
要配置多个审批规则,请使用 CI/CD 设置。 你也可以 使用 API。
所有部署到该环境的作业都会被阻塞,在运行前等待审批。 确保所需的审批数量少于允许部署的用户数量。
每个部署中,用户只能给出一次审批,即使该用户是多个审批者组的成员。问题 457541 提议更改此行为,以便同一用户可以从不同的审批者组对同一部署给出多次审批。
部署作业被批准后,你必须手动运行该作业。
允许自审批
默认情况下,触发部署流水线的用户不能同时审批该部署作业。
GitLab 管理员可以批准或拒绝所有部署。
要允许部署作业的自审批:
- 在左侧边栏,选择 搜索或跳转 并找到你的项目。
- 选择 设置 > CI/CD。
- 展开 受保护环境。
- 在 审批选项 中,选择 允许流水线触发者审批部署 复选框。
批准或拒绝部署
在具有多个审批规则的环境中,你可以:
- 批准部署以允许其继续进行。
- 拒绝部署以阻止其进行。
先决条件:
- 你有权部署到受保护环境。
要批准或拒绝部署:
- 在左侧边栏,选择 搜索或跳转 并找到你的项目。
- 选择 运维 > 环境。
- 选择环境的名称。
- 找到部署并选择其 状态徽章。
- 可选。添加描述你批准或拒绝部署原因的注释。
- 选择 批准 或 拒绝。
你也可以使用 API。
每个部署中,你只能给出一次审批,即使你是多个审批者组的成员。问题 457541 提议更改此行为,以便同一用户可以从不同的审批者组对同一部署给出多次审批。
部署被批准后,相应的部署作业不会自动运行。
查看部署的审批详情
先决条件:
- 你有权部署到受保护环境。
部署到受保护环境只有在所有必需的审批获得批准后才能继续进行。
要查看部署的审批详情:
- 在左侧边栏,选择 搜索或跳转 并找到你的项目。
- 选择 运维 > 环境。
- 选择环境的名称。
- 找到部署并选择其 状态徽章。
显示审批状态详情:
- 有资格的审批者
- 已批准的审批数量和所需的审批数量
- 已批准审批的用户
- 审批或拒绝的历史记录
查看被阻塞的部署
审查你的部署状态,包括部署是否被阻塞。
要查看你的部署:
- 在左侧边栏,选择 搜索或跳转 并找到你的项目。
- 选择 运维 > 环境。
- 选择正在部署到的环境。
带有 blocked 标签的部署是被阻塞的。
要查看你的部署,你也可以使用 API。
status 字段指示部署是否被阻塞。