2

我有多个从多级 yaml 构建的管道(扩展:模板:),我想设置在传递变量时应该运行哪些作业和步骤的条件。所以在这种情况下,我想设置变量'Migrations = false'并在我的集成作业中跳过一些作业(迁移作业)和一些步骤(npm run integration-tests)

我尝试使用(跳过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
4

1 回答 1

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 文件时,您可能会看到红色波浪线(如下面的屏幕截图)。但是架构是正确的,您可以毫无问题地运行它。

在此处输入图像描述

于 2020-07-10T04:08:24.843 回答