我有多个管道是从多级Yaml构建的(扩展:模板:) 并且我想设置一个条件,让我在传递变量时可以运行哪些作业和步骤。 因此,在这种情况下,我想设置变量“ Migrations = false”,并跳过我的集成作业上的某些作业(迁移作业)和某些步骤(npm运行集成测试)
我尝试使用(跳过migration.yaml上的迁移作业)
stages:
- stage: dev
displayName: dev
jobs:
- ${{if ne(variables.migrations, 'false')}}:
- template: /Dotnet/Release/migration.yaml
,并且(跳过integration.yaml上的集成脚本)
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
答案 0 :(得分:0)
检查以下示例:
- 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文件时,可能会出现红色波浪线(如下面的屏幕截图)。但是架构是正确的,您可以毫无问题地运行它。