我正在努力扩展 Azure DevOps yaml 管道中的基本模板。似乎即使是最简单的操作也是一个挑战,没有好的资源、工具、文档和无信息的错误消息。我正在使用 yamllint.com 和 AzDO rest api 来解析 yaml:
https://dev.azure.com/{{org}}/{{project}}/_apis/pipelines/{{pielineId}}/runs?api-version=5.1-preview
您可以推荐的任何其他工具都会有所帮助。
我的问题;我想从扩展管道中添加作业。请解释为什么在下面添加连接没有任何作用。
这按预期工作:
- stage: parseBuildJobsWithCondition
jobs:
- ${{ each job in parameters.buildJobs }}:
${{ if contains(job.displayName, '1') }}:
job: ${{ 'thisIsATest' }}
steps:
- ${{ job.steps }}
结果:
resources:
repositories:
- repository: templates
type: git
name: basePipelineTemplatesHost/basePipelineTemplatesHost
ref: refs/tags/v1
stages:
- stage: parseBuildJobsWithCondition
jobs:
- job: thisIsATest
steps:
- task: Bash@3
inputs:
targetType: inline
script: echo This is bash script 1
但是尝试引入连接并没有任何作用:
- stage: parseBuildJobsWithCondition
jobs:
- ${{ each job in parameters.buildJobs }}:
${{ if contains(job.displayName, '1') }}:
job: ${{ join('ext_',job.displayName) }}
steps:
- ${{ job.steps }}
结果:
resources:
repositories:
- repository: templates
type: git
name: basePipelineTemplatesHost/basePipelineTemplatesHost
ref: refs/tags/v1
stages:
- stage: parseBuildJobsWithCondition
jobs:
- job: job1
steps:
- task: Bash@3
inputs:
targetType: inline
script: echo This is bash script 1
答案 0 :(得分:0)
我需要阅读 join 正在做什么,它没有连接。格式是我获得所需结果所需的功能!
- stage: parseBuildJobsWithCondition2
jobs:
- ${{ each job in parameters.buildJobs }}:
${{ if contains(job.displayName, '1') }}:
job: ${{ format('ext_{0}',job.displayName) }}
steps:
- ${{ job.steps }}
结果:
- stage: parseBuildJobsWithCondition2
jobs:
- job: ext_job1
steps:
- task: Bash@3
inputs:
targetType: inline
script: echo This is bash script 1