Azure Pipelines 的 YAML 架构参考
Azure Pipelines 的 YAML 架构参考是 YAML 管道的详细参考,其中列出了所有受支持的 YAML 语法及其可用选项。
若要创建 YAML 管道,请从 管道 定义开始。 有关生成 YAML 管道的详细信息,请参阅 自定义管道。
YAML 架构引用不包括任务。 有关任务的详细信息,请参阅 Azure Pipelines 任务索引。
定义
管道
管道是描述 CI/CD 过程的一个或多个阶段。 管道定义包含根级别属性(如 name
)的文档。
扩展
使用模板扩展管道。
作业
指定构成阶段工作的作业。
jobs.deployment
部署作业是一种特殊类型的作业。 它是针对环境按顺序运行的步骤集合。
jobs.deployment.environment
目标环境名称和(可选)资源名称来记录部署历史记录;format: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
需求(用于私人池)。
pr
拉取请求触发器。
资源
资源指定管道使用的生成、存储库、管道和其他资源。
resources.builds
管道引用的生成资源列表。
resources.builds.build
用于从运行中引用项目的生成资源。
resources.containers
容器映像列表。
resources.containers.container
用于引用容器映像的容器资源。
resources.containers.container.trigger
指定“不禁用”、“true”在所有图像标记上触发,或使用以下示例中所述的完整语法。
resources.packages
包资源列表。
resources.packages.package
用于引用 NuGet 或 npm GitHub 包的包资源。
resources.pipelines
管道资源列表。
resources.pipelines.pipeline.trigger
指定“不禁用”、“true”以包括所有分支或使用完整语法,如以下示例中所述。
resources.pipelines.pipeline.trigger.branches
分支来包含或排除用于触发运行的分支。
resources.存储库
存储库资源列表。
resources.repository.repository
存储库资源用于引用管道中的其他存储库。
resources.webhooks
Webhook 列表。
resources.webhooks.webhook
Webhook 资源使你能够将管道与外部服务集成,以自动执行工作流。
resources.webhooks.webhook.filters
触发器筛选器列表。
resources.webhooks.webhook.filters.filter
Webhook 资源触发器筛选器。
计划
计划列表指定管道的计划触发器。
schedules.cron
计划触发器指定生成分支的计划。
阶段
阶段是相关作业的集合。
stage.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 PowerShell(在 Windows 上)或 pwsh(Linux 和 macOS)运行脚本。
steps.publish
发布(上传)文件或文件夹作为管道项目,其他作业和管道可以使用。
steps.pwsh
在 Windows、macOS 和 Linux 上的 PowerShell Core 中运行脚本。
steps.reviewApp
下载会在部署阶段提供程序下动态创建资源。
steps.script
在其他平台上使用 cmd.exe 运行脚本。
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 ]
是字符串数组。 - 表示法
{
数据类型:
数据类型}
指示一种数据类型到另一种数据类型的映射。 例如,{ string: string }
是字符串到字符串的映射。 - 符号
|
指示关键字有多个数据类型。 例如,job | template
意味着允许作业定义或模板引用。
另请参阅
此参考介绍 Azure Pipelines YAML 文件的架构。
若要了解 YAML 的基础知识,请参阅 在 Y 分钟内学习 YAML。
Azure Pipelines 不支持所有 YAML 功能。
不支持的功能包括定位点、复杂键和集。
此外,与标准 YAML 不同,Azure Pipelines 依赖于在映射中看到 stage
、job
、task
或任务快捷方式,如 script
作为映射中的第一个键。