小心行事:如何在管道中使用审批门

而DevOps自动化的目的是消除大多数人为干预CI/CD DevOps管道在美国,你不能总是把别人完全排除在这个过程之外。在允许你的管道进一步进行之前,你仍然需要一个专家亲自检查以确保一切都是正确的。
这就是为什么JFrog Pipelines授权DevOps团队包含批准盖茨在他们的2022世界杯预选赛 ,以赋予关键人员防止错误蔓延到生产二进制文件的权力。
批准门的用例
什么时候需要审批门?这取决于您的组织及其特殊关注点。以下是可能使用管道中的审批门的一些需求:
- 在SRE团队将应用程序发布到生产环境之前,安全团队需要审核和批准应用程序。
- 在将构建部署到生产环境之前,必须得到产品、安全和质量保证团队的批准。
- 在升级或部署之前,生产工程师必须验证应用程序的所有依赖组件都已就绪/兼容。
- 在发布给其他开发团队使用之前,安全和QA团队必须验证更新后的构件。
- 质量保证团队需要开发团队在运行测试之前批准工件。
创建审批门
您可以为管道配置YAML中的任何步骤配置手动审批门。
当一个步骤配置了审批门时,它将暂停执行并将其状态设置为等待.然后,必需的用户必须手动批准(或拒绝)要完成的步骤(或取消)。
如果该步骤被取消,那么管线将把它视为失败,并且不会执行后续步骤。
简易审批门
批准门可以在配置部分,使用requiresApproval关键。
在其最简单的用法中,您可以设置的值requiresApproval来真正的.
步骤:—name: approvalGatesStep type: Bash configuration: requiresApproval: true
在这种模式下,任何具有管道执行权限的用户都可以批准或拒绝该步骤。如果在24小时内没有采取任何行动,该步骤将自动取消,并且不再执行后续步骤。
复杂审批门
在一个简单的审批门中,没有用户在管线UI之外被通知需要审批;用户必须观察管道的执行以查看步骤的挂起状态。
这对于大多数现实环境来说并不实用。审批人需要通过他们每天使用的协作工具通知他们需要采取行动。
也有可能需要由特定的人或多人进行批准。
由于这些原因,requiresApprovalKey可以使用以下任何或所有附加属性进行配置:
审批人员—可批准或拒绝该步骤的用户列表。通知-当步骤进入待定状态时,通过SMTP和/或Slack发送的通知列表。timeoutSeconds—该步骤在被取消前保持“等待中”状态的最长时间。
—name: npm_publish_step type: npmPublish configuration: requiresApproval: approvers:—mtwain # Artifactory user—jcheever # Artifactory user notifications:—integrationName: mySlack_Int # Slack integration timeoutSeconds: 43200 # 12 hours
运行审批闸门
这样你就一步建立了你的批准之门。当管道运行时会发生什么?
当我们的管道执行时,在我们的npmPublish步骤将暂停执行,请输入等待状态,并发送通知(在这种情况下,发送到Slack)。

通知中的链接将显示当前运行的Pipeline History视图,该视图反映了步骤的当前Pending状态。

在查看“挂起”步骤的日志时,会出现一个批准/拒绝按钮可用。

点击批准/拒绝显示批准或拒绝的选项,以及注册关于该操作的评论的机会。

当你批准,请您确认。

停,看,按
管道中的审批门使DevOps工程师能够使用开发人员的专业知识软件开发生命周期工作是他们CI/CD管道不可分割的一部分。通过自动通知和易于遵循的UI,您可以确保任何所需的手动监督都由授权执行它的人完成。
这个特性只是JFrog Pipelines帮助您的组织实践和执行CI/CD的最新方式,而这正是您所决定的。无论是自己创造自定义扩展或模板,或开箱即用的集成通过您使用的许多工具,管道使您能够构建最适合您的工作模式。
你尝试过管线CI/CD吗?如果不是这样,免费开始!
