resources.pipelines.pipelines.pipeline definition
如果有生成项目的 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
字符串。 作为第一个属性是必需的。
管道资源的 ID。 可接受的值:[-_A-Za-z0-9]*。
project
字符串。
源的项目;默认为当前项目。
source
字符串。
生成项目的管道的名称。 如果管道包含在文件夹中,请包含文件夹名称,包括前导 \
,例如 \security pipelines\security-lib-ci
。 此属性不区分大小写,如果名称包含空格,则不需要引号。 如果有多个具有相同名称的管道,则必须指定文件夹路径。
version
字符串。
用于选取项目的管道运行编号,默认为跨所有阶段成功的最新管道;仅用于手动或计划的触发器。
branch
字符串。
用于选取项目的分支。 选;默认为所有分支,仅用于手动或计划的触发器。
tags
字符串列表。
管道上用于拾取默认项目的标记列表。 选;仅用于手动或计划的触发器。
trigger
resources.pipelines.pipeline.trigger。
指定 none 以禁用,指定 true 以包括所有分支,或使用完整语法,如以下示例中所述。
注解
注意
pipeline:
指定管道资源的名称。 在引用其他管道部分的管道资源时(例如使用管道资源变量或下载工件时),请使用此处定义的标签。
有关管道资源触发器中 和 tags
的详细信息stages
,请参阅管道完成触发器。
有关管道资源触发器的详细信息,请参阅 管道完成触发器。
管道资源触发器语法
注意
在确定是否因完成一个管道完成而运行另一个管道时,管道完成触发器使用手动和计划生成的默认分支设置来确定要评估哪个分支的 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>
管道资源的 ID。 对于以下管道资源,要访问 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
可以使用 download
任务来使用管道资源中的工件。 请参阅 steps.download 关键字 (keyword) 。
示例
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/*