我想从下面的管道代码将一些键值对对象作为参数传递到我的模板。
azure-pipeline.yml
jobs:
- template: custom-template.yml
parameters:
customProperties:
- key1: value1
- key2: value2
下面是作为我的模板一部分的伪代码。
自定义模板.yml
parameters:
- name: customProperties
type: object
default: []
jobs:
- job: MyJob
steps:
- task: CmdLine@2
displayName: "Get all parameter values"
inputs:
targetType: "inline"
script: |
args = (${{ parameters.customProperties }} ) #TODO: loop key value pairs, create variable.
echo "##vso[task.setvariable variable=ARGS;isoutput=true]args"
- task: CmdLine@2
displayName: "Use the parameter values"
inputs:
targetType: "inline"
script: |
echo $(ARGS) # from previous task
通过上述管道
object
输入,在我的实际模板处理中,我想形成一个如下格式的字符串变量,并在模板的后续步骤中使用该值。
-Dkey1=value1 -Dkey2=value2
有几个示例可以循环参数值并有条件地包含其他任务。但我的要求是根据参数值创建一个变量。
我遇到了这个问题。 这个问题的答案有两个方面
# list of dictionary yaml
paramemters:
someParam:
- key1: value1
- key2: value2
是
{
"someParam": {
"key1": "value1"
},
{
"key2": "value2"
}
}
相反,你想要
# list of dictionary yaml
paramemters:
someParam:
key1: value1
key2: value2
原来如此
{
"someParam":{
"key1": "value1",
"key2": "value2"
}
}
parameters:
- name: someParam
type: object
steps:
- {{ each param in parameters.someParam }}
- script: |
echo "you can access each {{param.key}} {{param.value}}"