Azure DevOps 管道

问题描述 投票:0回答:1

我需要您协助创建 Azure DevOps 管道,以在运行时提示用户输入。我想合并五个阶段,对于每个阶段,我希望管道询问用户是否要继续。根据他们的输入,该阶段将运行或跳过。

我尝试过使用参数,但遇到的问题是所有选择都出现在第一阶段之前,而其他阶段之前没有出现任何选择。此外,我尝试创建一个新环境并添加批准,但这也不是我想要的。

我想要的是用户运行管道,然后提示一个问题以继续或跳过。在他们做出回应后,第一阶段将根据结果执行。然后,另一个提示将要求继续或跳过,然后根据用户的选择进入第 2 阶段,依此类推

azure azure-devops azure-pipelines azure-pipelines-yaml
1个回答
0
投票

你的需求基本上是可以的,不支持。

作为解决方法,您可以尝试以下方法:

在每个阶段,您都可以添加服务器作业无代理作业)作为第一个作业。在 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 任务。


© www.soinside.com 2019 - 2024. All rights reserved.