【问题标题】:Run template conditionally on azure pipeline yaml在 azure 管道 yaml 上有条件地运行模板
【发布时间】:2022-08-10 13:29:52
【问题描述】:

我有两个不同的 yml 管道。我总是通过邮递员正文触发管道并发送变量值。这里是身体部分。

{ 
        \"definition\": {
            \"id\": 151
        },
        \"parameters\": \"{\\\"Plan\\\":\\\"sand\\\"}\"
}

现在我想运行一个模板,条件是如果计划是沙子,那么模板将运行。我使用了很多条件,但没有任何效果。提供一些我尝试过的条件,

- ${{ if eq(variables.Plan, \'sand\') }}:
  - template: Sandbox Tasks/sand.yml@templates

- ${{ if eq(parameters.Plan, \'sand\') }}:
  - template: Sandbox Tasks/sand.yml@templates

- template: Sandbox Tasks/sand.yml@templates
  condition: eq(variables[\'Plan\'], \'sand\')

- template: Sandbox Tasks/sand.yml@templates
  condition: eq(parameters[\'Plan\'], \'sand\')

- ${{ if eq(variables[\'Plan\'], \'sand\') }}:
  - template: Sandbox Tasks/sand.yml@templates

- ${{ if eq(parameters[\'Plan\'], \'sand\') }}:
  - template: Sandbox Tasks/sand.yml@templates

通过匹配变量值来运行带有条件的模板的正确方法是什么?

  • 第一个 - ${{ if eq(variables.Plan, \'sand\') }}: 应该可以工作,你的模板在没有条件的情况下可以工作吗?分享您的 yaml 参数的测试,如果可以,请分享步骤
  • 试过第一个。管道运行没有错误,但模板步骤不可见,即使没有跳过。也许它与值不匹配。
  • 在那里我要求分享你的参数部分,
  • 我已经与有问题的邮递员共享了我通过 json 正文通过 POST 请求传递的参数列表。是否有任何要求添加任何类型的参数/变量清除?
  • 你能不能把参数改成\"templateParameters\": {\"Plan\":\"sand\"}

标签: azure-devops azure-pipelines azure-pipelines-build-task azure-pipelines-yaml


【解决方案1】:
  • ${{ if eq(parameters.is_python, true)}}:
    • 模板:../Python/install-python.yml 参数: 变量组:'${{parameters.variable_group}}'
  • ${{ if eq(parameters.is_python, false)}}:
    • 模板:cdk-installation.yml 参数: 变量组:'${{parameters.variable_group}}'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-28
    • 2019-09-07
    • 1970-01-01
    • 2020-06-22
    • 2021-11-12
    • 2020-11-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多