Azure Yaml Pipelines - 模板的动态对象参数
Azure Yaml Pipelines - Dynamic object parameter to template
我想触发一个以对象作为参数的作业模板。
不幸的是,即使基于示例,我也找不到这样做的方法。
如果有人可以指导我如何实现这一点,我将不胜感激。
我想要实现的是用动态变量替换 ["DEPLOY", "CONFIG"] 部分:
- template: job-template.yaml
parameters:
jobs: ["DEPLOY", "CONFIG"]
这是不可能的。 YAML 在这里非常有限,您可以阅读更多相关内容 here
Yaml variables have always been string: string mappings.
例如,您可以将参数定义为复杂类型
模板文件
parameters:
- name: 'instances'
type: object
default: {}
- name: 'server'
type: string
default: ''
steps:
- ${{ each instance in parameters.instances }}:
- script: echo ${{ parameters.server }}:${{ instance }}
主文件
steps:
- template: template.yaml
parameters:
instances:
- test1
- test2
server: someServer
但是您无法做到这一点 dynamically/programmatically 因为您将创建的每个输出最终都将是简单的字符串。
您可以做的是作为字符串传递,然后使用 powershell 拆分该字符串。但这完全取决于您想要进一步 运行 什么,因为您将无法以这种方式简单地遍历 yaml 结构。您所能做的就是 运行 在 powershell 循环中做一些事情,但这对您来说可能还不够。
有一定的逻辑是可能的。见下文
- template: job-template.yaml
parameters:
param: ["DEPLOY", "CONFIG"]
并且在job-template.yaml文件中你可以定义。所以每个工作名称都会不同
parameters:
param: []
jobs:
- ${{each jobName in parameters.param}}:
- job: ${{jobName}}
steps:
- task: Downl......
我想触发一个以对象作为参数的作业模板。 不幸的是,即使基于示例,我也找不到这样做的方法。 如果有人可以指导我如何实现这一点,我将不胜感激。
我想要实现的是用动态变量替换 ["DEPLOY", "CONFIG"] 部分:
- template: job-template.yaml
parameters:
jobs: ["DEPLOY", "CONFIG"]
这是不可能的。 YAML 在这里非常有限,您可以阅读更多相关内容 here
Yaml variables have always been string: string mappings.
例如,您可以将参数定义为复杂类型
模板文件
parameters:
- name: 'instances'
type: object
default: {}
- name: 'server'
type: string
default: ''
steps:
- ${{ each instance in parameters.instances }}:
- script: echo ${{ parameters.server }}:${{ instance }}
主文件
steps:
- template: template.yaml
parameters:
instances:
- test1
- test2
server: someServer
但是您无法做到这一点 dynamically/programmatically 因为您将创建的每个输出最终都将是简单的字符串。
您可以做的是作为字符串传递,然后使用 powershell 拆分该字符串。但这完全取决于您想要进一步 运行 什么,因为您将无法以这种方式简单地遍历 yaml 结构。您所能做的就是 运行 在 powershell 循环中做一些事情,但这对您来说可能还不够。
有一定的逻辑是可能的。见下文
- template: job-template.yaml
parameters:
param: ["DEPLOY", "CONFIG"]
并且在job-template.yaml文件中你可以定义。所以每个工作名称都会不同
parameters:
param: []
jobs:
- ${{each jobName in parameters.param}}:
- job: ${{jobName}}
steps:
- task: Downl......