我最近尝试将基于UI或Classic的发布管道转换为基于YAML的发布管道。
我们有三个环境,最初CD发行版将很高兴部署到我们的开发环境中。
从那里我们手动触发发布(重新升级)以进行测试,然后在某个时候(如果我们都满意的话)手动升级为正式版。
我们知道我们目前尚不支持在发行阶段之间进行手动升级,但是从我的理解中,我们应该能够通过为每个手动定义环境进行安全检查来做同样的事情要求晋升。
定义安全检查的详细信息在这里:https://docs.microsoft.com/en-us/azure/devops/pipelines/process/approvals?view=azure-devops&tabs=check-pass
此后,我在“测试”和“生产”中都添加了相同的安全检查,但是发布仍会自动进行。
是否存在将这种批准流程映射到新的YAML多阶段版本中的示例?
到目前为止,我已经通过“环境”选项卡上的Approval and checks
功能向“测试和生产”环境中添加了一个安全组。
答案 0 :(得分:1)
请检查以下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
一起使用。此外,将与添加了environment
的{{1}}一起使用。