Azure devops 如何将列表作为构建参数传递给Azure DevOps Server 2019(在prem上)中的YAML模板? 例如,考虑下面的模板(例如XYZ.YML):
现在,假设我有以下azure-pipelines.yml文件:Azure devops 如何将列表作为构建参数传递给Azure DevOps Server 2019(在prem上)中的YAML模板? 例如,考虑下面的模板(例如XYZ.YML):,azure-devops,yaml,Azure Devops,Yaml,现在,假设我有以下azure-pipelines.yml文件: ... steps: ... - template: xyz.yml parameters: projects: ??? ... 如何从生成变量中输入projectstemplate参数?假设在构建时,我只想请求构建p1和p3。我该怎么做?检查以下示例: #xyz.yml parameters: projects: [] steps: - ${{ each project in paramete
...
steps:
...
- template: xyz.yml
parameters:
projects: ???
...
如何从生成变量中输入
projects
template参数?假设在构建时,我只想请求构建p1和p3。我该怎么做?检查以下示例:
#xyz.yml
parameters:
projects: []
steps:
- ${{ each project in parameters.projects }}:
- task: VSBuild@1
displayName: Build ${{ project }}
inputs:
solution: ${{ project }}.sln
...
...
#azure-pipelines.yml
steps:
- template: xyz.yml
parameters:
projects: ["p1", "p3"]
您可以尝试使用stepList类型参数,并将相同的参数值传递给模板 例如:
parameters:
projects: ['p1', 'p2', 'p3']
steps:
- ${{ each project in parameters.projects }}:
- task: VSBuild@1
displayName: Build ${{ project }}
inputs:
solution: ${{ project }}.sln
...
main.yaml:
parameters:
- name: mySteplist
type: stepList
default:
- task: CmdLine@2
inputs:
script: |
echo Write your commands here
echo Hello world1
- task: CmdLine@2
inputs:
script: |
echo Write your commands here
echo Hello world2
trigger:
- none
steps:
- template: stepstem.yml
parameters:
buildSteps:
- ${{ parameters.mySteplist }}
# - template: stepstem.yml
# parameters:
# buildSteps:
# - bash: echo Test #Passes
# displayName: succeed
# - bash: echo "Test"
# displayName: succeed
# - ${{ parameters.mySteplist }}
- task: CmdLine@2
inputs:
script: |
echo Write your commands here
echo Hello world3
stepstem.yaml:
parameters:
- name: buildSteps # the name of the parameter is buildSteps
type: stepList # data type is StepList
default: []
steps:
- ${{ parameters.buildSteps }}
- task: CmdLine@2
inputs:
script: |
echo Write your commands here
echo Hello world tem
- script: echo "hello"
所以,你可以使用VSBuild@1任务作为默认参数值,并可以在生成队列时更改它。在哪里显示如何从生成变量传递列表?不支持将数组定义为变量,变量语法为
变量:{string:string}
。您当前只能使用参数定义数组:那么这应该是真正的答案-不可能将列表从build传递到YAML。这是一个大麻烦。Azure DevOps可以具有split
功能,就像它具有join
功能一样。这样,字符串就可以转换为列表。这真是一个令人沮丧的问题。中的产品团队提到“我们正准备在不久的将来发布一个功能,让您能够通过更复杂的结构。请继续关注!”。此外,您可以在网站上提交新建议。我们正在prem AzD上使用。新功能慢慢地向我们传播:-(这在Azure DevOps Server 2019中不起作用。2020 RC1已过期,因此在我们迁移到它之后,也许我可以使用它。但现在它无关紧要。@mark我担心您必须在DevOps Server 2020中使用它。这也是我的看法。但我仍然不明白您的建议如何帮助传播来自构建的列表parameter@mark对于示例代码,它是使用stepList作为生成参数并将其传递给模板。没有字符串列表类型。如果我误解了您的意思,请随时通知我。