附加到扩展管道作业名称

时间:2021-05-03 21:25:41

标签: yaml azure-devops-pipelines

我正在努力扩展 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

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