Azure devops 多阶段 YAML 结合人工交互
Azure devops multi-stage YAML combined with manual interaction
我刚刚读到 multi-stage pipelines 听起来很棒。
据我了解,阶段运行一个接一个,现在假设我有以下阶段
stages:
stage: Deploy to acc
...
stage: Deploy to prd
我不想 运行 在部署到 acc
之后立即进行生产部署。首先,我想查看 acc
,当我批准后,它应该部署到 prd
。多阶段流水线中是否有一种方法可以告诉您不要自动 运行 一个阶段?例如 运行 手动一个阶段?或者我应该为生产创建一个新的管道吗?
要防止阶段自动 运行,您可以为每个阶段添加条件。检查 here 了解更多信息
stages:
- stage: A
#stage B runs if A fails
- stage: B
condition: failed()
#stage C runs if B succeeds
- stage: C
dependsOn:
- A
- B
condition: succeeded('B')
如果您想 运行 手动设置一个阶段。您可以为 environments
创建 checks
。
按照以下步骤创建舞台目标环境。
导航到管道页面。然后选择环境并单击创建环境。
有关详细信息,请查看 here
然后按照说明 here 为每个环境创建检查。这样,在您的管道阶段开始部署到定义了 checks
的环境之前。它将等待批准。
建议使用发布管道部署您的应用。您可以在项目的 Releases 页面中创建发布管道。创建 approvals 和 gates 以手动干预您的部署任务在发布管道中非常简单。
检查 here 了解详细步骤
仅供参考,每个阶段结束时的手动验证任务也无法完成:
- task: ManualValidation@0
timeoutInMinutes: 1440 # task times out in 1 day
inputs:
notifyUsers: |
test@test.com
example@example.com
instructions: 'Please validate the build configuration and resume'
onTimeout: 'resume'
我刚刚读到 multi-stage pipelines 听起来很棒。
据我了解,阶段运行一个接一个,现在假设我有以下阶段
stages:
stage: Deploy to acc
...
stage: Deploy to prd
我不想 运行 在部署到 acc
之后立即进行生产部署。首先,我想查看 acc
,当我批准后,它应该部署到 prd
。多阶段流水线中是否有一种方法可以告诉您不要自动 运行 一个阶段?例如 运行 手动一个阶段?或者我应该为生产创建一个新的管道吗?
要防止阶段自动 运行,您可以为每个阶段添加条件。检查 here 了解更多信息
stages:
- stage: A
#stage B runs if A fails
- stage: B
condition: failed()
#stage C runs if B succeeds
- stage: C
dependsOn:
- A
- B
condition: succeeded('B')
如果您想 运行 手动设置一个阶段。您可以为 environments
创建 checks
。
按照以下步骤创建舞台目标环境。
导航到管道页面。然后选择环境并单击创建环境。 有关详细信息,请查看 here
然后按照说明 here 为每个环境创建检查。这样,在您的管道阶段开始部署到定义了 checks
的环境之前。它将等待批准。
建议使用发布管道部署您的应用。您可以在项目的 Releases 页面中创建发布管道。创建 approvals 和 gates 以手动干预您的部署任务在发布管道中非常简单。 检查 here 了解详细步骤
仅供参考,每个阶段结束时的手动验证任务也无法完成:
- task: ManualValidation@0
timeoutInMinutes: 1440 # task times out in 1 day
inputs:
notifyUsers: |
test@test.com
example@example.com
instructions: 'Please validate the build configuration and resume'
onTimeout: 'resume'