使用多阶段的 Azure DevOps YAML 管道批准

Azure DevOps YAML Pipeline Approval using Multi-Stage

我最近尝试将我们的 UI 或基于经典的发布管道转换为基于 YAML 的发布管道。

我们有三个环境,最初一个 CD 构建将愉快地部署到我们的开发环境。

从那里我们手动触发发布(重新:升级)到测试,然后在某个时候,如果我们都满意,手动升级到生产。

我们知道我们无法模仿发布阶段之间的手动升级,因为它目前不受支持,但根据我的阅读,我们应该能够通过为每个环境定义安全检查来做同样的事情已请求手动推广。

定义安全检查的详细信息在这里:https://docs.microsoft.com/en-us/azure/devops/pipelines/process/approvals?view=azure-devops&tabs=check-pass

我已将相同的安全检查添加到测试和生产中,但发布仍会自动发生。

是否有这种批准流程映射到新的 YAML 多阶段发布的示例?

到目前为止,我已经通过“环境”选项卡上的 Approval and checks 功能向测试和生产环境添加了一个安全组。

请检查以下 YAML 示例:

trigger:
- master

pool:
  vmImage: 'ubuntu-latest'

stages:

  - stage: build   
    jobs:
      - job: buildjob        
        steps:
          - checkout: none
      - deployment: DeployWeb
        pool:
          vmImage: 'Ubuntu-16.04'
        environment: 'Verify'

  - stage: deploy
    jobs:
      - deployment: DeployWeb
        displayName: deploy Web App
        pool:
          vmImage: 'Ubuntu-16.04'
        environment: 'Verify'
        strategy:
          # default deployment strategy, more coming...
          runOnce:
            deploy:
              steps:
              - script: echo my first deployment

在我的场景中,我有一个环境名称 Verify,我为其添加了 Approvals and Checks

要将此 Approvals and Checks 应用到您的多阶段管道中,您需要确保相应的环境已在 YAML 中定位。

另一件需要注意的事情是,到目前为止,Environment 只能在 YAML 的 deployment job 中作为目标。

换句话说,只有在其中配置了-deployment: job的阶段,才能与Environment一起工作。此外,将使用添加了 Approvals and Checks.

environment