我想将管道定义 UI 中定义的名为
publish
的变量传递到主 echo.yml
中名为 pipeline.yml
的模板,然后在模板中使用该变量的值作为任务运行与否的条件。
到目前为止还没有成功。
这真的可能吗?
下面是简化的示例,真正的用例是控制发布任务是否执行。
echo.yml
:
parameters:
- name: 'desc'
type: string
default: none
- name: 'publish'
type: string
default: 'false'
steps:
- task: Bash@3
condition: ${{ parameters.publish }}
inputs:
targetType: 'inline'
script: |
echo desc is ${{ parameters.desc }}
echo publish is ${{ parameters.publish }}
pipeline.yml
:
pool:
vmImage: 'ubuntu-latest'
steps:
- task: Bash@3
inputs:
targetType: 'inline'
script: |
# Write your commands here
echo SBN IS $(Build.SourceBranchName)
echo SB IS $(Build.SourceBranch)
- template: echo.yml
parameters:
desc: 'my description'
publish: ${{ variables.publish }}
如果您想根据参数运行任务或不运行任务,您可以使用模板表达式
${{ if ... }}
而不是使用条件。
示例:
parameters:
- name: desc
type: string
default: none
- name: publish
type: boolean <---------- change to boolean
default: false
trigger: none
pool:
vmImage: 'ubuntu-latest'
steps:
- checkout: self
- ${{ if eq(parameters.publish, true) }}:
- task: Bash@3
inputs:
targetType: 'inline'
script: |
echo desc is ${{ parameters.desc }}
echo publish is ${{ parameters.publish }}
注:
publish
可以更改为boolean
,在排队新构建时将显示为复选框。