На каждом шаге вы можете поставить 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. Чтобы они были полностью отделены.
Смотри также: