如何将管道变量传递到模板中,然后在条件中使用

问题描述 投票:0回答:1

我想将管道定义 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 }}

azure-devops azure-pipelines
1个回答
0
投票

如果您想根据参数运行任务或不运行任务,您可以使用模板表达式

${{ 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
    ,在排队新构建时将显示为复选框。
© www.soinside.com 2019 - 2024. All rights reserved.