Определение resources.pipelines.pipeline
Если у вас есть Azure Pipeline, который создает артефакты, конвейер может использовать артефакты, определив ресурс конвейера. В Azure DevOps Server 2020 и более поздних версиях можно также включить триггеры завершения конвейера с помощью ресурса конвейера.
pipelines:
- pipeline: string # Required as first property. ID of the pipeline resource.
project: string # Project for the source; defaults to current project.
source: string # Name of the pipeline that produces the artifact.
version: string # The pipeline run number to pick the artifact, defaults to latest pipeline successful across all stages; used only for manual or scheduled triggers.
branch: string # Branch to pick the artifact. Optional; defaults to all branches, used only for manual or scheduled triggers.
tags: [ string ] # List of tags required on the pipeline to pickup default artifacts. Optional; used only for manual or scheduled triggers.
trigger: # Specify none to disable, true to include all branches, or use the full syntax as described in the following examples.
enabled: boolean # Whether the trigger is enabled; defaults to true.
branches: branches # Branches to include or exclude for triggering a run.
stages: [ string ] # List of stages that when matched will trigger the pipeline.
tags: [ string ] # List of tags that when matched will trigger the pipeline.
pipelines:
- pipeline: string # Required as first property. ID of the pipeline resource.
project: string # Project for the source; defaults to current project.
source: string # Name of the pipeline that produces the artifact.
version: string # The pipeline run number to pick the artifact, defaults to latest pipeline successful across all stages; used only for manual or scheduled triggers.
branch: string # Branch to pick the artifact. Optional; defaults to all branches, used only for manual or scheduled triggers.
tags: [ string ] # List of tags required on the pipeline to pickup default artifacts. Optional; used only for manual or scheduled triggers.
trigger: # Specify none to disable, true to include all branches, or use the full syntax as described in the following examples.
enabled: boolean # Whether the trigger is enabled; defaults to true.
branches: branches # Branches to include or exclude for triggering a run.
pipelines:
- pipeline: string # Required as first property. ID of the pipeline resource.
project: string # Project for the source; defaults to current project.
source: string # Name of the pipeline that produces the artifact.
version: string # The pipeline run number to pick the artifact, defaults to latest pipeline successful across all stages; used only for manual or scheduled triggers.
branch: string # Branch to pick the artifact. Optional; defaults to all branches, used only for manual or scheduled triggers.
Определения, ссылающиеся на это определение: resources.pipelines
Свойства
pipeline
Строка. Требуется в качестве первого свойства.
Идентификатор ресурса конвейера. Допустимые значения: [-_A-Za-z0-9]*.
project
Строка.
Проект для источника; значение по умолчанию — текущий проект.
source
Строка.
Имя конвейера, создающего артефакт. Если конвейер содержится в папке, добавьте имя папки, в том числе в начале \
, например \security pipelines\security-lib-ci
. Это свойство не учитывает регистр и не нуждается в кавычках, если имя содержит пробелы. При наличии нескольких конвейеров с одинаковым именем необходимо указать путь к папке.
version
Строка.
Номер запуска конвейера для выбора артефакта по умолчанию — последний успешный конвейер на всех этапах; используется только для ручных или запланированных триггеров.
branch
Строка.
Ветвь для выбора артефакта. Дополнительные; значение по умолчанию для всех ветвей, используется только для ручных или запланированных триггеров.
tags
список строк.
Список тегов, необходимых в конвейере для получения артефактов по умолчанию. Дополнительные; используется только для ручных или запланированных триггеров.
trigger
resources.pipelines.pipeline.trigger.
Укажите значение none для отключения, значение true для включения всех ветвей или используйте полный синтаксис, как описано в следующих примерах.
Комментарии
Примечание
pipeline:
указывает имя ресурса конвейера. Используйте метку, определенную здесь, при обращении к ресурсу конвейера из других частей конвейера, например при использовании переменных ресурса конвейера или скачивании артефактов.
Дополнительные сведения о stages
триггере ресурса конвейера и tags
см. в разделе Триггеры завершения конвейера.
Дополнительные сведения о триггерах ресурсов конвейера см. в разделе Триггеры завершения конвейера.
Синтаксис триггера ресурса конвейера
Примечание
Триггеры завершения конвейера используют параметр Ветвь по умолчанию для ручных и запланированных сборок , чтобы определить версию ветвей фильтров ветвей конвейера YAML для оценки при определении того, следует ли запускать конвейер в результате завершения другого конвейера. По умолчанию этот параметр указывает на ветвь по умолчанию репозитория. Дополнительные сведения см. в разделе Триггеры завершения конвейера — рекомендации по ветвям.
Существует несколько способов определения триггеров в ресурсе конвейера. Чтобы активировать выполнение после завершения любого запуска конвейера, на который указывает ссылка, используйте .trigger: true
resources:
pipelines:
- pipeline: source-pipeline
source: TriggeringPipeline
trigger: true
Чтобы отключить триггер ресурса конвейера, укажите значение none
.
resources:
pipelines:
- pipeline: source-pipeline
source: TriggeringPipeline
trigger: none
Чтобы настроить фильтры ветвей, используйте полный синтаксис. Фильтры ветвей можно указать как список ветвей для включения или как список ветвей для включения в сочетании со списком ветвей для исключения.
Чтобы указать список ветвей для включения и исключения, используйте следующий trigger
синтаксис.
resources:
pipelines:
- pipeline: source-pipeline
source: TriggeringPipeline
trigger:
branches:
include:
- main
- develop
- features/*
exclude:
- features/experimental/*
Чтобы указать список ветвей для включения без исключений, опустите exclude
значение или используйте следующий синтаксис, чтобы указать список ветвей, включаемых непосредственно после branches
.
resources:
pipelines:
- pipeline: source-pipeline
source: TriggeringPipeline
trigger:
branches:
- main
- develop
Чтобы выполнить фильтрацию по этапам или тегам, используйте следующий trigger
синтаксис.
resources:
pipelines:
- pipeline: source-pipeline
source: TriggeringPipeline
trigger:
branches: # Branches to include
tags: # List of tags that when matched will trigger the pipeline.
- release25
stages: # List of stages that when complete will trigger the pipeline.
- build
Дополнительные сведения см. в разделе Триггеры завершения конвейера.
Важно!
При определении триггера ресурса, если его ресурс конвейера находится из того же репозитория, что и текущий конвейер, триггер следует за той же ветвью и фиксацией, в которой вызывается событие. Но если ресурс конвейера находится из другого репозитория, текущий конвейер активируется в ветви, указанной в параметре Ветвь по умолчанию для ручных и запланированных сборок . Дополнительные сведения см. в разделе Рекомендации по ветви для триггеров завершения конвейера.
Метаданные ресурса конвейера в виде предопределенных переменных
В каждом запуске метаданные ресурса конвейера доступны для всех заданий в виде следующих предопределенных переменных. Эти переменные доступны для конвейера во время выполнения и поэтому не могут использоваться в выражениях шаблона, которые вычисляются во время компиляции конвейера.
resources.pipeline.<Alias>.projectName
resources.pipeline.<Alias>.projectID
resources.pipeline.<Alias>.pipelineName
resources.pipeline.<Alias>.pipelineID
resources.pipeline.<Alias>.runName
resources.pipeline.<Alias>.runID
resources.pipeline.<Alias>.runURI
resources.pipeline.<Alias>.sourceBranch
resources.pipeline.<Alias>.sourceCommit
resources.pipeline.<Alias>.sourceProvider
resources.pipeline.<Alias>.requestedFor
resources.pipeline.<Alias>.requestedForID
Важно!
projectName
отсутствует в переменных, если ресурс конвейера не имеет указанного project
значения. Свойство project
является необязательным для ресурсов конвейера, которые ссылаются на конвейер в том же проекте, но при необходимости может быть указано.
Замените <Alias>
идентификатором ресурса конвейера. Для следующего ресурса конвейера переменная для доступа runID
— resources.pipeline.source-pipeline.runID
.
resources:
pipelines:
- pipeline: source-pipeline
source: TriggeringPipeline
При активации конвейера одним из его ресурсов конвейера в дополнение к переменным из предыдущего списка задаются следующие переменные.
Переменная | Значение |
---|---|
Build.Reason |
ResourceTrigger |
Resources.TriggeringAlias |
Имя ресурса конвейера, например source-pipeline из предыдущего примера. |
Resource.TriggeringCategory |
pipeline |
В следующем примере имеется два ресурса конвейера.
resources:
pipelines:
- pipeline: source-pipeline
source: PipelineTriggerSource
project: FabrikamFiber
trigger: true
- pipeline: other-project-pipeline
source: PipelineTriggerFromOtherProject
project: FabrikamRepo
trigger: true
trigger: none # Only trigger with pipeline resource trigger
pool:
vmImage: ubuntu-latest
- bash: echo $(resources.pipeline.source-pipeline.projectName)
- bash: printenv | sort
Когда этот конвейер выполняется, первая bash
задача выводит projectName
ресурс конвейера с именем source-pipeline
, то есть FabrikamFiber
.
Вторая bash
задача выводит все переменные среды, доступные для задачи, включая переменные ресурсов конвейера, описанные в этом разделе. Перечисление переменных среды обычно не выполняется в рабочем конвейере, но может быть полезно для устранения неполадок. В этом примере есть два ресурса конвейера, а выходные данные содержат следующие две строки.
RESOURCES_PIPELINE_OTHER-PROJECT-PIPELINE_PROJECTNAME=FabrikamRepo
RESOURCES_PIPELINE_SOURCE-PIPELINE_PROJECTNAME=FabrikamFiber
Примечание
Системные и пользовательские переменные внедряются в качестве переменных среды для вашей платформы. При преобразовании переменных в переменные среды имена переменных становятся прописными, а точки — символами подчеркивания. Например, имя any.variable
переменной становится ANY_VARIABLE
.
Дополнительные сведения об использовании переменных и синтаксиса переменных см. в разделахОбщие сведения о синтаксисе переменных, Указание условий и Выражения.
Вы можете использовать артефакты из ресурса конвейера с помощью download
задачи. См. ключевое слово steps.download.
Примеры
resources:
pipelines:
- pipeline: MyAppA
source: MyCIPipelineA
- pipeline: MyAppB
source: MyCIPipelineB
trigger: true
- pipeline: MyAppC
project: DevOpsProject
source: MyCIPipelineC
branch: releases/M159
version: 20190718.2
trigger:
branches:
include:
- main
- releases/*
exclude:
- users/*