部署批准
在部署到某些受保护的环境(例如,生产环境)之前要求额外的批准可能很有用。部署前批准要求对于适应每次部署之前必须进行的测试、安全性或合规性流程很有用。
当受保护的环境需要一个或多个批准时,该环境的所有部署都会被阻止,并在运行前等待所需的来自 Allowed to Deploy
列表的批准。
配置部署审批
你可以在项目中要求对受保护环境进行部署审批。
先决条件:
- 要更新环境,你必须至少具有维护者角色。
要为项目配置部署审批:
-
在你项目的
.gitlab-ci.yml
文件中创建一个部署作业:stages: - deploy production: stage: deploy script: - 'echo "Deploying to ${CI_ENVIRONMENT_NAME}"' environment: name: ${CI_JOB_NAME} action: start
作业无需手动触发(
when: manual
)。 -
添加需要的审批规则。
项目中的环境在部署之前就会需要审批。
添加多个批准规则
- 一般可用于 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 管理员可以批准或拒绝所有部署。
要对部署允许自审批:
- 在左侧导航栏,选择 搜索或前往 并找到你的项目。
- 选择 设置 > CI/CD。
- 展开 受保护环境。
- 从 审批选项 中,选择 允许流水线触发器批准部署 复选框。
批准或拒绝部署
在一个具有多审批规则的环境中,你可以:
- 批准部署以允许其进行。
- 拒绝部署以防止其进行。
先决条件:
- 你需要部署到受保护环境的权限。
要批准或拒绝一个部署:
- 在导航栏左侧,选择 搜索或前往 并找到你的项目。
- 选择 运维 > 环境。
- 选择环境的名称。
- 找到部署并选择其 状态徽标。
- 可选。添加一个评论,描述你批准或拒绝部署的原因。
- 选择 批准 或 拒绝。
你还可以查看使用 API。
部署被批准后,对应的部署作业不会自动运行。
查看部署的审批详情
先决条件:
- 你需要有部署到受保护环境的权限。
只有所有必须的审批通过后,向受保护环境的部署才能够进行。
要查看部署的审批详情:
- 在左侧导航栏,选择 搜索或前往 并找到你的项目。
- 选择 运维 > 环境。
- 选择环境的名称。
- 找到部署并选择其 状态徽标。
审批状态详情会展示:
- 符合条件的审批人
- 授权的审批者数量以及需要的审批者数量
- 授权审批的用户
- 批准或拒绝的历史
查看被阻止的部署
Review the status of your deployments, including whether a deployment is blocked.
要查看你的部署:
- 在左侧导航栏,选择 搜索或前往 并找到你的项目。
- 选择 运维 > 环境。
- 选择要部署的环境。
A deployment with the blocked label is blocked. 具有 被阻止 标签的部署会被阻止。
要查看你的部署,你还可以使用 API。status
字段指示部署是否被阻止。