Azure devops 如何在Azure Devops中的模板上的条件表达式中使用变量
我有多个正在从多级yaml构建的管道(扩展:模板:) 我想设置传递变量时作业和步骤应该运行的条件。 因此,在本例中,我希望设置变量“Migrations=false”,并跳过集成作业上的一些作业(迁移作业)和一些步骤(npm运行集成测试) 我尝试使用(在migration.yaml上跳过迁移作业) 以及(跳过integration.yaml上的集成脚本)Azure devops 如何在Azure Devops中的模板上的条件表达式中使用变量,azure-devops,yaml,multistage-pipeline,Azure Devops,Yaml,Multistage Pipeline,我有多个正在从多级yaml构建的管道(扩展:模板:) 我想设置传递变量时作业和步骤应该运行的条件。 因此,在本例中,我希望设置变量“Migrations=false”,并跳过集成作业上的一些作业(迁移作业)和一些步骤(npm运行集成测试) 我尝试使用(在migration.yaml上跳过迁移作业) 以及(跳过integration.yaml上的集成脚本) 检查以下示例: - stage: A jobs: - job: A steps: - bash: echo "
检查以下示例:
- stage: A
jobs:
- job: A
steps:
- bash: echo "A"
- stage: B
variables:
someVar: true
jobs:
- job: B
steps:
- ${{ if ne(variables['someVar'], 'false') }}:
- template: resource-template.yml
- script: echo hi
- template: test.yml
parameters:
migrations: ${{ variables.someVar }}
#test.yml
parameters:
- name: 'migrations'
default: 'false'
type: string
jobs:
- job: Integration
steps:
- script: "echo step1"
- ${{ if ne(parameters.migrations, 'true') }}:
- script: echo hello
注意:
创建yaml文件时,可能会出现红色波浪线(如下面的屏幕截图)。但是模式是正确的,您可以毫无问题地运行它
当管道初始化时,变量Migrations的子替换被视为null,因此它采用默认值,在我的例子中为“true”。作业:-模板:/Dotnet/Release/integration.yaml参数:迁移:${{variables.migrations}
jobs:
- template: /Dotnet/Release/integration.yaml
parameters:
migrations: ${{ variables.Migrations }}
###integration.yaml###
- name: 'migrations'
default: 'true'
type: string
jobs:
- job: Integration
steps:
- script: "echo step1"
- ${{if ne(parameters.migrations, 'false')}}:
- script: npm run integration-tests
- stage: A
jobs:
- job: A
steps:
- bash: echo "A"
- stage: B
variables:
someVar: true
jobs:
- job: B
steps:
- ${{ if ne(variables['someVar'], 'false') }}:
- template: resource-template.yml
- script: echo hi
- template: test.yml
parameters:
migrations: ${{ variables.someVar }}
#test.yml
parameters:
- name: 'migrations'
default: 'false'
type: string
jobs:
- job: Integration
steps:
- script: "echo step1"
- ${{ if ne(parameters.migrations, 'true') }}:
- script: echo hello