最初,我想在azure-pipelines.yml
中定义可以在队列时间设置的管道变量,但是目前似乎不支持此操作:只能在队列时间设置的变量在设计器中。该变量(以逗号分隔)名为nx_versions
,将用于构建矩阵策略。这是一个最小的示例:
# azure-pipelines.yml
jobs:
- template: job-template.yml
parameters:
nx_versions: $(nx_versions)
和
# job-template.yml
parameters:
nx_versions:
- 1
jobs:
- job: build
strategy:
matrix:
${{ each nxver in parameters.nx_versions }}:
NX_${{ nxver }}:
NXVersion: ${{ nxver }}
steps:
- powershell: echo $(NXVersion)
使用nx_versions = 2,3
对构建进行排队(值实际上并不重要)会导致错误:
/job-template.yml (Line: 9, Col: 9): Expected a sequence or mapping. Actual value '$(nx_versions)'
这甚至可能吗?我也尝试使用${{ nx_versions }}
和${{ variables.nx_versions }}
无济于事。
这可以通过完整的Designer解决方案来实现。
答案 0 :(得分:1)
琐碎的管道(不引用模板,但可以轻松扩展)
parameters:
- name: nx_versions
type: object
default:
- 1
- 4
jobs:
- job: build
strategy:
matrix:
${{ each nxver in parameters.nx_versions }}:
NX_${{ nxver }}:
NXVersion: ${{ nxver }}
steps:
- powershell: echo $(NXVersion)
扩展到
parameters:
- name: nx_versions
type: object
default:
- 1
- 4
stages:
- stage: __default
jobs:
- job: build
strategy:
matrix:
NX_1:
NXVersion: 1
NX_4:
NXVersion: 4
steps:
- task: PowerShell@2
inputs:
targetType: inline
script: echo $(NXVersion)
如果您为此将构建排入队列,您将获得一个带有默认值的参数页面:
您可以覆盖:
导致:
答案 1 :(得分:0)
我遇到了同样的问题。我认为目前这是不可能的。我相信这是针对https://github.com/Microsoft/azure-pipelines-yaml/pull/129