我创建了一个任务组来封装某些功能。 如果使用常规版本,则可以通过常规向导添加任务组。
不幸的是,我需要在YAML内部使用任务组。我无法查看“旧”版本的YAML以查看应如何发生。
我尝试过的事情:
- task: TaskGroupName@1
displayName: 'RunTests'
inputs:
TestConfiguration: 'some.xml'
TestCaseFilter: $(TestCaseFilter)
UnitTestFolders: $(UnitTestFolders)
答案 0 :(得分:3)
答案 1 :(得分:0)
您可以将参数'objects'传递到模板YAML文件中,以执行几乎所需的操作;我发现的唯一棘手的问题是每个实例参数'object'具有多个属性,并使用新的模板{{ each }}
表达式对其进行迭代。
以下是我为该解决方案构造yaml文件的方式:
azure_pipelines.yml
pool:
name: Hosted VS2017
demands:
- npm
- msbuild
- visualstudio
- vstest
steps:
- template: azure_webapp_template.yml
parameters:
webapps:
- name: Customer 1
url: customer1.azurewebsites.net
- name: Customer 2
url: customer2.azurewebsites.net
- name: Customer 3
url: customer3.azurewebsites.net
- name: Customer 4
url: customer4.azurewebsites.net
正如您在上面看到的,我们正在创建一个对象webapps
,然后为每个“ webapp”具有一些嵌套属性。
然后,在我们的“模板”中,我们可以迭代webapps
参数中的每个对象,并在迭代任务中扩展属性。
azure_webapp_template.yml
# Proving ability to loop over params a number of times
parameters:
- name: 'webapps'
type: object
default: {}
steps:
- ${{ each webapp in parameters.webapps }}:
- task: PowerShell@2
displayName: 'Task Group Test 1 ${{webapp.name}}'
inputs:
targetType: 'inline'
script: |
Write-Host "Name: ${{webapp.name}} with url ${{webapp.url}}"
failOnStderr: true
workingDirectory: '$(Build.SourcesDirectory)'
- task: PowerShell@2
displayName: 'Task Group Test 2 ${{webapp.name}}'
inputs:
targetType: 'inline'
script: |
Write-Host "Name: ${{webapp.name}} with url ${{webapp.url}}"
failOnStderr: true
workingDirectory: '$(Build.SourcesDirectory)'