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

Azure DevOps Services | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018

注意

在 Microsoft Team Foundation Server (TFS) 2018 和更低版本中,生成和发布管道被称为“定义”,运行被称为“生成”,服务连接被称为“服务终结点”,阶段被称为“环境”,而作业被称为“阶段” 。

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

本教程的内容:

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

先决条件

设置门

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

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

    Edit the release pipeline

  2. 选择阶段的预部署图标以打开预部署条件面板,然后选择切换按钮以 启用 入口。

    Enable gates

  3. 输入添加的入口评估前的延迟时间。 这一次是允许门函数在返回结果之前初始化和稳定。

    Gates delay time

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

    Adding Query work items task

  5. 选择现有工作项查询或 创建自己的工作项。 根据查询要返回的工作项数,设置最大阈值和最小阈值。

    Configuring the Query Work Items task

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

    Evaluation options setup

  7. 完成后,选择“ 保存 ”。

    Save a release pipeline

设置手动干预

根据方案,有时可能需要向发布管道添加手动干预。 可以通过将 手动干预 任务添加到管道来执行此操作。

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

    Stage tasks

  2. 从阶段定义中选择省略号 (...) ,然后选择“ 添加无代理作业”。

    Add agentless job

    注意

    手动干预任务只能在无代理作业中使用。

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

    Add a Manual Intervention task

  4. 通过在触发任务时输入要显示的指令来配置任务。

    Configure the Manual Intervention task

    可以指定要在部署等待手动审批时通知的用户列表。 还可以指定超时,操作 (批准或拒绝在超时期间内没有干预时发生的) 。 有关更多详细信息,请参阅 手动干预 任务。

  5. 完成后,选择“ 保存 ”。

设置手动验证

可以使用 YAML 中的 手动验证 任务暂停管道运行并等待手动批准。 在想要暂停管道并在启动计算密集型作业之前验证配置设置或生成包的情况,手动验证尤其有用。

作业 waitForValidation 暂停运行并触发管道 UI 中的提示,以查看和验证任务。 中列出的 notifyUsers 电子邮件地址会收到批准或拒绝管道运行的通知。

Add validation for the pipeline to continue.

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. 选择 “发布”,然后选择发布管道。

    Release summary

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

    Stage pending intervention

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

    Resume task

  4. 返回到发布管道。 QA 阶段部署成功,并触发生产阶段的预部署审批。

    Pre-deployment approval triggered for next stage

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

    Approve deployment

  6. 返回到发布管道。 实时状态表示在发布继续之前,正在处理 生产 阶段的入口。

    status: processing gates

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

    View logs

下一步