是否可以在 Azure DevOps 管道中创建动态作业?
我有一个场景,其中我有多个用于部署的目录,目录的数量将是动态的(例如:它可以有 1 个用于部署的应用程序,也可以有多个)。我想要做的是创建一个动态数量的作业,其中应该运行cd app && cf push
对于每个目录。
deployments/
├── app1
│ ├── app.jar
│ └── manifest.yml
├── app2
│ ├── app.jar
│ └── manifest.yml
└── app3
| ├── app.jar
| └── manifest.yml
您可以尝试使用矩阵配置来处理此问题:
您要做的就是构建代表您的文件夹结构的变量,然后将其作为配置传递:
jobs:
- job: JobA
steps:
- pwsh: |
$json="{'job1': {'Work': 'work1'}, 'job2': {'Work': 'work2'}}"
Write-Host "##vso[task.setvariable variable=targets;isOutput=true]$json"
name: setTargets
- script: echo $(setTargets.targets)
name: echovar
- job: buildSrc
dependsOn: JobA
displayName: Build source
strategy:
matrix: $[ dependencies.JobA.outputs['setTargets.targets'] ]
variables:
targets: $[ dependencies.JobA.outputs['setTargets.targets'] ]
steps:
- pwsh: Write-Host "${{ convertToJson(variables) }}"
displayName: 'Print all variables via expression'
所以你会得到这个:
请注意,如果您想使用阶段,那么您可能需要不同的语法才能到达输出变量。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)