Azure Pipelines 的 YAML 架构参考

Azure Pipelines 的 YAML 架构参考是 YAML 管道的详细参考,其中列出了所有受支持的 YAML 语法及其可用选项。

若要创建 YAML 管道,请从 管道 定义开始。 有关生成 YAML 管道的详细信息,请参阅 自定义管道

YAML 架构参考不涵盖任务。 有关任务的详细信息,请参阅 Azure Pipelines 任务索引

定义

管道
管道是描述 CI/CD 过程的一个或多个阶段。 管道定义包含根级别属性(如 name)的文档。

管道
管道是描述 CI/CD 进程的一个或多个作业。

延伸
使用模板扩展管道。

工作
指定构成阶段工作的作业。

工作
指定构成管道工作的作业。

jobs.deployment
部署作业是一种特殊类型的作业。 它是针对环境按顺序运行的步骤集合。

jobs.deployment.environment
目标环境名称和(可选)用于记录部署历史记录的资源名称;格式:environment-name.resource-name。

jobs.deployment.strategy
此部署的执行策略。

jobs.deployment.strategy.canary
Canary 部署策略。

jobs.deployment.strategy.rolling
滚动部署策略。

jobs.deployment.strategy.runOnce
RunOnce 部署策略。

jobs.job
作业是由代理或在服务器上运行的步骤的集合。

jobs.job.container
容器资源名称。

jobs.job.strategy
此作业的执行策略。

jobs.job.uses
此作业所需的任何尚未引用的资源。

jobs.template
模板中定义的一组作业。

参数
指定传递给管道的运行时参数。

parameters.parameter
管道模板参数。


要用于管道作业的池。

pool.demands
要求 (专用池) 。

公关
拉取请求触发器。

资源
资源指定管道使用的生成、存储库、管道和其他资源。

resources.builds
管道引用的生成资源列表。

resources.builds.build
用于引用运行中的项目的生成资源。

resources.containers
容器映像列表。

resources.containers.container
用于引用容器映像的容器资源。

resources.containers.container.trigger
指定 none 可禁用,将 true 指定为所有映像标记触发,或使用完整语法,如以下示例中所述。

resources.packages
包资源列表。

resources.packages.package
用于引用 NuGet 或 npm GitHub 包的包资源。

resources.pipelines
管道资源列表。

resources.pipelines.pipeline.trigger
指定 none 以禁用,指定 true 以包括所有分支,或使用完整语法,如以下示例中所述。

resources.pipelines.pipeline.trigger.branches
要包括或排除以触发运行的分支。

resources.repositories
存储库资源列表。

resources.repositories.repository
存储库资源用于引用管道中的其他存储库。

resources.webhooks
Webhook 列表。

resources.webhooks.webhook
使用 Webhook 资源可将管道与外部服务集成,以自动执行工作流。

resources.webhooks.webhook.filters
触发器筛选器列表。

resources.webhooks.webhook.filters.filter
Webhook 资源触发器筛选器。

附表
计划列表指定管道的计划触发器。

schedules.cron
计划触发器指定生成分支所基于的计划。

阶段
阶段是相关作业的集合。

stages.stage
阶段是相关作业的集合。

stages.template
可以在一个文件中定义一组阶段,并在其他文件中多次使用它。

步骤
步骤是构成作业的线性操作序列。

steps.bash
在 Windows、macOS 和 Linux 上的 Bash 中运行脚本。

steps.checkout
配置管道签出源代码的方式。

steps.download
下载与当前运行关联的项目,或者从另一个作为管道资源关联的 Azure Pipeline 下载项目。

steps.downloadBuild
下载生成项目。

steps.getPackage
从 Azure Artifacts 或 Azure DevOps Server 中的包管理源下载包。

steps.powershell
在 Windows) 上使用 Windows PowerShell (或 pwsh (Linux 和 macOS) 运行脚本。

steps.publish
发布 (上传) 文件或文件夹作为其他作业和管道可以使用的管道项目。

steps.pwsh
在 Windows、macOS 和 Linux 上的 PowerShell Core 中运行脚本。

steps.reviewApp
下载在部署阶段提供程序下动态创建资源。

steps.script
在 Windows 上使用 cmd.exe 运行脚本,在其他平台上使用 Bash。

steps.task
运行任务。

steps.template
在一个文件中定义一组步骤,并在另一个文件中多次使用它。

目标
任务在代理主机或容器的执行上下文中运行。

target.settableVariables
可设置的变量的限制。

触发
持续集成 (推送) 触发器。

变量
使用名称/值对定义变量。

variables.group
引用变量组中的变量。

variables.name
使用名称和完整语法定义变量。

variables.template
在模板中定义变量。

支持定义

注意

支持定义不适合直接在管道中使用。 支持定义仅用作其他定义的一部分,并在此处提供以供参考。

deployHook
用于运行部署应用程序的步骤。

includeExcludeFilters
要包括或排除的项列表。

includeExcludeStringFilters
要包括或排除的项目。

mountReadOnly
要装载只读的卷,默认值为 false。

onFailureHook
用于运行回滚操作或清理的步骤。

onSuccessHook
用于运行回滚操作或清理的步骤。

onSuccessOrFailureHook
用于运行回滚操作或清理的步骤。

postRouteTrafficHook
用于在路由流量后运行步骤。 通常,这些任务按定义的时间间隔监视更新版本的运行状况。

preDeployHook
用于运行在应用程序部署开始之前初始化资源的步骤。

routeTrafficHook
用于运行向更新版本提供流量的步骤。

工作
代理上的工作区选项。

YAML 架构文档约定

YAML 架构参考是 Azure Pipelines YAML 管道的详细参考指南。 它包括所有受支持的 YAML 功能和可用选项的目录。

下面是 YAML 架构参考中使用的语法约定。

  • : 的左侧是管道定义中使用的文本关键字。
  • : 的右侧为数据类型。 数据类型可以是 字符串等基 元类型,也可以是对此引用中其他位置定义的丰富结构的引用。
  • 表示法 [数据类型] 指示上述定义类型的数组。 例如,[ string ] 是一个字符串数组。
  • 表示法 {datatype : datatype } 表示一种数据类型到另一种数据类型的映射。 例如,{ string: string } 是字符串到字符串的映射。
  • 符号 | 指示有多种数据类型可用于该关键字。 例如,job | template 表示允许使用作业定义或模板引用。

另请参阅

本参考文章介绍 Azure Pipelines YAML 文件的架构。 若要了解 YAML 的基础知识,请参阅在 Y 分钟内了解 YAML。 Azure Pipelines 不支持所有 YAML 功能。 不支持的功能包括定位点、复杂密钥和集。 此外,与标准 YAML 不同,Azure Pipelines 依赖于将 stagejobtask 或任务快捷方式(如 script)作为映射中的第一个键。