azure-devops - 如何使 yaml 管道依赖在前一个循环的上下文中工作?

标签 azure-devops azure-pipelines

我希望能够处理数组..运行该作业多次(与数组中的项目一样多) - 但我需要下一个作业依赖于最后一个作业。

如何将数组中最后一个元素的值放入下一个作业的 dependsOn: 参数中?有可能吗?如果不是,那么我如何使下一个作业取决于上一个作业最后一次运行的成功?

parameters:
- name: solutionName
  type: object
  default: ['entry1', 'entry2']

variables:
- group: 'Key Vault Test'
- name: Var1
  value: 'lol'


trigger:
- main

jobs:
- ${{each Solution in parameters.SolutionName}}:
  - job: Job_${{Solution}}
    displayName: ${{Solution}}
    pool:
      vmImage: ubuntu-latest
    steps: 
    - script: |
        echo $(Var1)
        echo ${{Solution}}
        echo ${{join(' ',parameters.SolutionName)}}

- job: Job_2
  dependsOn: HOW_DO_I_PUT_JOB_NAME_IF_I_DONT_KNOW_IT
  displayName: Job2
  pool:
    vmImage: ubuntu-latest
  steps:
  - script: |
      echo 'Second Job'

最佳答案

您可以使用另一个 each 来定义第二个作业中的依赖项列表:

jobs:
- ${{each Solution in parameters.SolutionName}}:
  - job: Job_${{Solution}}
    displayName: ${{Solution}}
    pool:
      vmImage: ubuntu-latest
    steps: 
    - script: |
        echo $(Var1)
        echo ${{Solution}}
        echo ${{join(' ',parameters.SolutionName)}}

- job: Job_2
  dependsOn:
    - ${{each Solution in parameters.SolutionName}}:
      - Job_${{Solution}}
  displayName: Job2
  pool:
    vmImage: ubuntu-latest
  steps:
  - script: |
      echo 'Second Job'

请注意,第一个 each 循环中的“最后”作业并不是确定的事情;这些作业都将并行运行,因此它们中的任何一个都可能首先完成或最后完成。因此,为了让你的第二项工作等待它们全部完成,它需要对它们中的每一个都有显式的依赖。

关于azure-devops - 如何使 yaml 管道依赖在前一个循环的上下文中工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72263376/

相关文章:

angular - 使用 VS 2015 的 Angular 2 应用程序的 VSTS 中的“未知编译器选项库”

azure - 使用 Bicep 创建新订阅

azure - 是否可以在 Azure DevOps 中显示 ARM 部署的进度?

azure - 独占锁管道级别 - Azure

azure - 使用 Express Web 应用程序设置 Azure DevOps 源代码控制时出错

带域用户的 sqlpackage.exe

powershell - 如何从 Remove-Item 中捕获错误并发出警告?

azure - 在 Azure Dev Ops : How do I view the content of the package location directory $(Build. ArtifactStagingDirectory 上)

oauth - VSTS,创建构建定义得到 AllowScriptsAuthAccess 错误

asp.net - VSTS 构建定义组织 ID 错误