Определение 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.
Определения, ссылающиеся на это определение: resources.pipelines
Свойства
строка pipeline
. Обязательный в качестве первого свойства.
идентификатор ресурса конвейера. Допустимые значения: [-_A-Za-z0-9]*.
строка project
.
Project для источника; по умолчанию используется текущий проект.
строка source
.
Имя конвейера, создающего артефакт. Если конвейер содержится в папке, добавьте имя папки, включая начальные \
, например \security pipelines\security-lib-ci
. Это свойство не учитывает регистр и не нуждается в кавычках, если имя включает пробелы. Путь к папке должен быть указан, если существует несколько конвейеров с одинаковым именем.
строка version
.
номер выполнения конвейера, чтобы выбрать артефакт, по умолчанию используется последняя успешность конвейера на всех этапах; используется только для ручных или запланированных триггеров.
строка branch
.
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 из предыдущего примера. |
Resources.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/*