как запустить разные шаги в файле YML в зависимости от триггера ветви - PullRequest
0 голосов
/ 12 апреля 2019

Как я могу заставить файл YAML запускать и проверять ветку и выполнять разные шаги?

Я работаю над файлом YAML для Azure, и я хочу запустить выполнить определенный шаг в моей основной ветке и другие шаги в ветви QA.

trigger:
- master
pool:
  vmImage: 'Ubuntu-16.04'
steps:
- script: ls $(Build.Repository.LocalPath)
  displayName: 'printing the ls

Я хочу проверить мастер и выполнить шаг, но если что-то изменится в ветви QA, которую я хочу вызвать, извлеките ветку QA и выполните другие шаги. Как должен выглядеть YAML?

1 Ответ

3 голосов
/ 12 апреля 2019

На каждом шаге вы можете поставить condition: для каждой задачи / сценария:

 condition: and(succeeded(), and(eq(variables['Build.SourceBranch'], 'refs/heads/master'), ne(variables['Build.Reason'], 'PullRequest')))

Это вызовет задачу для сборки главной ветви, кроме случаев, когда сборка была запущена для проверки запроса на извлечение. Полный пример:

task: SnykTask@1
  condition: and(succeeded(), and(eq(variables['Build.SourceBranch'], 'refs/heads/master'), ne(variables['Build.Reason'], 'PullRequest')))
  displayName: 'Dependency scan'
  inputs:
    file: xxxxx
    test: true
    monitor: false
    authType: endpoint
    endpoint: xxx
    severityThreshold: high
    failBuild: false

Вы также можете определить этап в вашем файле yaml. Этапы могут содержать набор шагов, а также могут быть сделаны условными:

stages: 
- stage: string # name of the stage, A-Z, a-z, 0-9, and underscore 
    displayName: string # friendly name to display in the UI 
    dependsOn: string | [ string ] 
    condition: string variables: { string: string } | [ variable | variableReference ] 
    jobs: [ job | templateReference]

В самом крайнем случае вы можете создать несколько файлов yaml и передать их в систему контроля версий. Затем перейдите в пользовательский интерфейс конвейеров Azure и создайте конвейер для каждого файла yaml. Чтобы они были полностью отделены.

Смотри также:

...