我需要您协助创建 Azure DevOps 管道,以在运行时提示用户输入。我想合并五个阶段,对于每个阶段,我希望管道询问用户是否要继续。根据他们的输入,该阶段将运行或跳过。
我尝试过使用参数,但遇到的问题是所有选择都出现在第一阶段之前,而其他阶段之前没有出现任何选择。此外,我尝试创建一个新环境并添加批准,但这也不是我想要的。
我想要的是用户运行管道,然后提示一个问题以继续或跳过。在他们做出回应后,第一阶段将根据结果执行。然后,另一个提示将要求继续或跳过,然后根据用户的选择进入第 2 阶段,依此类推
你的需求基本上是可以的,不支持。
作为解决方法,您可以尝试以下方法:
在每个阶段,您都可以添加服务器作业(无代理作业)作为第一个作业。在 Server job 中,您可以添加 ManualValidation 任务来暂停当前管道运行以等待手动交互。
validation
stages:
- stage: A
jobs:
- job: validation
pool: server
steps:
- task: ManualValidation@0
displayName: 'Whether Continue'
inputs:
notifyUsers: '{emails of the users to notify}'
instructions: 'Please confirm whether to continue running the subsequent jobs in this stage.'
- job: A1
dependsOn: validation
. . .
- job: A2
dependsOn: validation
. . .
- stage: B
jobs:
- job: validation
pool: server
steps:
- task: ManualValidation@0
displayName: 'Whether Continue'
inputs:
notifyUsers: '{emails of the users to notify}'
instructions: 'Please confirm whether to continue running the subsequent jobs in this stage.'
- job: B1
dependsOn: validation
. . .
- job: B2
dependsOn: validation
. . .
注意: ManualValidation 任务可用于 YAML 管道和经典构建管道。如果您的管道是经典版本,您可以使用 ManualIntervention 任务。