如何将字符串参数列表传递给 Azure DevOps 模板

Pur*_*ome 2 azure azure-devops

在上一个SO 问题中,我试图创建一个 Azure DevOps 模板。

现在我知道如何做到这一点,我正在尝试将字符串列表传递给模板并在模板中使用它们,如下所示:

azure_pipelines.yml

extends:
  template: AzurePipelines/job.yml
  parameters:
    projects:
      - FirstProject.csproj
      - SecondProject.csproj

Run Code Online (Sandbox Code Playgroud)

在这个模板中......

作业.yml

steps:
 (for each projectFileName in projects)
 - bash echo $(projectFileName)
 - run code in the build.yml template using $(projectFileName)
 - run code in the test.yml template using $(projectFileName)
 - run code in the publish.yml template using $(projectFileName)
Run Code Online (Sandbox Code Playgroud)

因此,对于提交到模板中的每个项目名称,请运行模板步骤。

我不确定如何传入字符串数组以及如何测试它是否有效?

Cec*_*SFT 5

看来您正在寻找每个功能

# my-template.yml
parameters:
- name: 'projects'
  type: projectList
  default: []
steps:
- ${{ each project in parameters.projects }}:
  - task: PublishBuildArtifacts@1
    displayName: 'Publish ${{ project }}
    inputs:
      PathtoPublish: '$(Build.ArtifactStagingDirectory)/${{ project }}.zip'
Run Code Online (Sandbox Code Playgroud)
# ci.yml
steps:
- template: my-template.yml
  parameters:
    projects:
    - test1
    - test2
Run Code Online (Sandbox Code Playgroud)

  • 根据此链接,没有参数类型“projectList”:https://learn.microsoft.com/en-us/azure/devops/pipelines/process/templates?view=azure-devops (3认同)
  • “type”应该是“object”而不是“projectsList” (3认同)