Определение 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 список строк.
Список тегов, необходимых в конвейере для получения артефактов по умолчанию. Дополнительные; используется только для ручных или запланированных триггеров.

triggerresources.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> идентификатором ресурса конвейера. Для следующего ресурса конвейера переменная для доступа runIDresources.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/*

См. также раздел