使用入口和审批来控制部署
Azure DevOps Services | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018
注意
在 Microsoft Team Foundation Server (TFS) 2018 和更低版本中,生成和发布管道被称为“定义”,运行被称为“生成”,服务连接被称为“服务终结点”,阶段被称为“环境”,而作业被称为“阶段” 。
通过使用手动部署审批、入口和手动干预发布管道的组合,可以快速轻松地配置部署以满足DevOps CI/CD 工作流的所有特定预部署要求。
本教程的内容:
- 预先部署入口
- 手动干预
- 手动验证
- 部署日志
先决条件
完成“ 定义多阶段持续部署” (CD) 管道 教程。
工作项查询。 可以在此处创建新查询:如果还没有 托管查询,请使用查询编辑器创建托管查询 。
设置门
可以使用入口来确保发布管道在部署前满足特定条件,而无需用户干预。
选择 “发布”,然后选择发布管道,然后选择 “编辑” 以打开管道编辑器。
选择阶段的预部署图标以打开预部署条件面板,然后选择切换按钮以 启用 入口。
输入添加的入口评估前的延迟时间。 这一次是允许门函数在返回结果之前初始化和稳定。
选择 “添加”,然后选择 “查询工作项 ”任务。
选择现有工作项查询或 创建自己的工作项。 根据查询要返回的工作项数,设置最大阈值和最小阈值。
选择“ 评估选项 ”部分,然后指定超时和采样间隔。 可以指定的最小值为 6 分钟超时和 5 分钟采样间隔。
完成后,选择“ 保存 ”。
设置手动干预
根据方案,有时可能需要向发布管道添加手动干预。 可以通过将 手动干预 任务添加到管道来执行此操作。
选择发布管道,然后选择 “任务 ”,然后选择阶段。
从阶段定义中选择省略号 (...) ,然后选择“ 添加无代理作业”。
注意
手动干预任务只能在无代理作业中使用。
将无代理作业拖放到部署过程的开始。 选择该 + 符号,然后选择“ 添加 手动干预”任务。
通过在触发任务时输入要显示的指令来配置任务。
可以指定要在部署等待手动审批时通知的用户列表。 还可以指定超时,操作 (批准或拒绝在超时期间内没有干预时发生的) 。 有关更多详细信息,请参阅 手动干预 任务。
完成后,选择“ 保存 ”。
设置手动验证
可以使用 YAML 中的 手动验证 任务暂停管道运行并等待手动批准。 在想要暂停管道并在启动计算密集型作业之前验证配置设置或生成包的情况,手动验证尤其有用。
作业 waitForValidation 暂停运行并触发管道 UI 中的提示,以查看和验证任务。 中列出的 notifyUsers 电子邮件地址会收到批准或拒绝管道运行的通知。
pool:
vmImage: ubuntu-latest
jobs:
- job: waitForValidation
displayName: Wait for external validation
pool: server
timeoutInMinutes: 4320 # job times out in 3 days
steps:
- task: ManualValidation@0
timeoutInMinutes: 1440 # task times out in 1 day
inputs:
notifyUsers: |
someone@example.com
instructions: 'Please validate the build configuration and resume'
onTimeout: 'resume'
查看部署日志
调试部署问题时,部署日志非常有用。 还可以使用日志来审核运行和验证审批,以及它们是如何授予的,以及由谁授予的。
选择 “发布”,然后选择发布管道。
此视图将显示管道中每个阶段的实时状态。 此示例中的 QA 阶段正在等待干预。 选择 “恢复”。
输入批注,然后选择“恢复”
返回到发布管道。 QA 阶段部署成功,并触发生产阶段的预部署审批。
选择 “批准 ”并输入批注,然后选择“ 批准 ”以继续部署。
返回到发布管道。 实时状态表示在发布继续之前,正在处理 生产 阶段的入口。
返回到发布管道,并将鼠标悬停在要审核的阶段上,然后选择“ 日志 ”以查看日志。