Как я могу использовать переменные в выражениях условий в шаблонах в Azure Devops - PullRequest
0 голосов
/ 09 июля 2020

У меня есть несколько конвейеров, которые строятся из многоступенчатого yaml (extends: template :), и я хочу установить условия, при которых задания и шаги должны выполняться, когда я передаю переменную. Итак, в этом случае я хочу установить переменную 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

1 Ответ

0 голосов
/ 10 июля 2020

Проверьте следующий пример:

- 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. Но схема верна, вы можете запустить ее без проблем.

введите описание изображения здесь

...