使用入口和审批来控制部署

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

通过在发布管道中使用手动部署审批、入口和手动干预的组合,可以快速轻松地配置部署,以满足工作流的所有特定部署前要求。

本教程的内容:

  • 预先部署入口
  • 手动干预
  • 手动验证
  • 部署日志

先决条件

设置入口

可使用门来确保发布管道在部署前满足特定条件,而无需用户干预。

  1. 选择“管道”>“发布”,然后选择发布管道。 选择“编辑”以打开管道编辑器。

    显示发布管道的编辑按钮的屏幕截图。

  2. 选择阶段的预部署图标,然后选择切换按钮以启用“入口”。

    显示如何启用入口的屏幕截图。

  3. 指定计算所添加入口之前的延迟时间。 在这段延迟时间内,入口函数可以在结果返回之前初始化和稳定。

    显示如何设置部署前入口延迟时间的屏幕截图。

  4. 选择“添加”,然后选择“查询工作项”。

    显示如何添加查询工作项任务的屏幕截图。

  5. 从下拉菜单中选择现有工作项查询。 根据希望查询返回的工作项数,设置最大和最小阈值。

    显示如何配置查询工作项任务的屏幕截图。

  6. 选择“计算选项”部分,然后指定超时和采样间隔。 可以指定的最小值是 6 分钟超时和 5 分钟的采样间隔。

    显示如何为查询工作项任务配置计算选项的屏幕截图。

  7. 完成时选择“保存” 。

    显示如何保存发布管道的屏幕截图。

设置手动干预

根据具体情况,有时可能需要对发布管道添加手动干预。 为此,可以将手动干预任务添加到管道。

  1. 选择“管道”>“发布”。 选择发布管道,然后选择“任务”并选择阶段。

    显示如何导航到发布管道中的暂存任务的屏幕截图。

  2. 选择省略号 (...),然后选择 “添加无代理作业”。

    显示如何添加无代理作业的屏幕截图。

  3. 将无代理作业拖放到部署过程的顶部。 选择“(+)”符号,然后选择“添加手动干预任务”。

    显示如何添加手动干预任务的屏幕截图。

  4. 输入“显示名称”以及触发任务时将显示的说明。 还可以指定要通知的用户列表以及在超时期限内用户未进行干预的情况下要采取的超时操作(拒绝或恢复)。

    显示如何配置手动干预任务的屏幕截图。

  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'

查看部署日志

可使用部署日志来调试部署问题,也可以使用它们来审核管道运行并验证审批以及审批的授予方式和授予者。

  1. 选择“管道”>“发布”,然后选择发布管道。

    显示发布定义的列表的屏幕截图。

  2. 此视图将显示管道中每个阶段的实时状态。 此示例中的 QA 阶段正在等待干预。 选择“继续”。

    显示 QA 阶段等待干预的屏幕截图。

  3. 输入批注,然后选择“恢复”。

    显示如何响应挂起的手动干预请求的屏幕截图。

  4. QA 阶段部署成功,并且针对生产阶段触发部署前审批。

    显示为下一阶段触发的部署前审批的屏幕截图。

  5. 选择“批准”,输入注释,然后选择“批准”以继续部署。

    显示如何响应挂起的审批请求的屏幕截图。

  6. 实时状态表示在发布继续之前,正在为生产阶段处理入口。

    显示生产处理入口的屏幕截图。

  7. 返回到发布管道,将鼠标悬停在阶段上,然后选择“日志”以查看部署日志。

    显示如何访问部署日志的屏幕截图。