gpt4 book ai didi

azure-devops - 将管道变量从设计器传递到 YAML 作业模板

转载 作者:行者123 更新时间:2023-12-03 13:41:57 26 4
gpt4 key购买 nike

我最初想在我的 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 解决方案实现。

最佳答案

琐碎的管道(不引用模板,但可以轻松扩展以这样做)

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)
如果您为此排队构建,您将获得一个带有默认值的参数页面:
Defaults
您可以覆盖:
Override parameters
这导致:
Overridden job result

关于azure-devops - 将管道变量从设计器传递到 YAML 作业模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55228903/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com