YAML 与经典管道
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
Azure Pipelines 使开发人员能够自动执行各种任务,从执行批处理文件到为其应用程序设置完整的持续集成(CI)和持续交付(CD)解决方案。
Azure Pipelines 支持各种语言、平台和工具,并提供两种类型的管道可供选择: 基于 YAML 的管道和 经典管道 编辑器。
注意
如果不熟悉 Azure Pipelines,建议从 YAML 管道开始。 对于现有的经典管道,可以选择继续使用它们或 迁移到 YAML 管道。
使用 YAML 定义管道
管道配置与应用程序一起驻留在名为 azure-pipelines.yml
YAML 文件的 YAML 文件中。
YAML 文件与应用程序代码一起进行版本控制,并遵循相同的分支结构。
每个分支都可以通过编辑
azure-pipelines.yml
文件来自定义管道。将管道配置保留在版本控制中可确保在代码库中轻松识别导致问题或意外结果的任何更改。
有关说明,请参阅 创建第一个管道 ,获取从 Git 存储库生成示例应用程序的分步指南。
使用经典界面定义管道
经典管道使用经典用户界面编辑器在 Azure DevOps Web 门户中创建。 可以定义管道来生成、测试代码,然后发布项目(二进制文件)。 此外,还可以定义发布 管道 来使用二进制文件(项目),并将其部署到特定目标。
经典管道使用经典用户界面编辑器在 Azure DevOps Web 门户中创建。 可以定义生成 管道 来生成、测试代码,然后发布项目(二进制文件)。 此外,还可以定义发布 管道 来使用二进制文件(项目),并将其部署到特定目标。
有关说明,请参阅 生成 和 部署 ,获取使用经典管道生成和部署应用程序的分步指南。
功能可用性
Feature | 说明 | YAML | 经典管道 | 经典发布 |
---|---|---|---|---|
代理 | 在虚拟机或物理计算机上运行的软件组件,负责执行 Azure Pipelines 中定义的任务。 | 医生 | 医生 | 医生 |
审批 | 在部署到阶段之前,要求指定的审批者批准部署工作流。 | 医生 | 医生 | |
项目 | 下载二进制文件和各种类型的包并将其发布到不同的目标。 | 医生 | 医生 | 医生 |
缓存 | 通过缓存和重用以前运行的依赖项来缩短生成时间。 | 医生 | 医生 | |
条件 | 指定步骤、作业或阶段应运行的条件。 | 医生 | 医生 | 医生 |
Container jobs(容器作业) | 指定要在容器中运行的作业。 | 医生 | ||
要求 | 确保管道所需的功能存在于正在运行的代理上。 | 医生 | 医生 | 医生 |
依赖项 | 指定必须满足的要求才能运行下一阶段。 | 医生 | 医生 | |
部署组和环境 | 部署组(经典):定义一组配备部署代理的目标计算机。 环境(YAML):针对部署的资源集合。 |
医生 | 医生 | |
部署作业 | 针对环境按顺序运行的部署步骤的集合。 | 医生 | ||
Gates | 在完成部署之前,通过评估外部服务的运行状况信号来自动执行发布控制。 | 医生 | ||
作业 | 一系列顺序步骤,构成可计划运行的最小工作单元。 | 医生 | 医生 | 医生 |
Library | 可在 Azure Pipelines 中使用的资产集合。 库包含两种类型的资产: 变量组 和安全 文件。 | 医生 | 医生 | 医生 |
服务连接 | 启用与执行作业中任务所需的外部服务的连接。 | 医生 | 医生 | 医生 |
服务容器 | 使你能够管理容器化服务的生命周期。 最常用于容器作业。 | 医生 | ||
阶段 | 在管道中组织作业。 | 医生 | 医生 | |
任务组 | 将一系列任务封装到单个可重用的任务中。 | 医生 | 医生 | |
任务 | 定义构成管道作业的步骤的构建基块。 | 医生 | 医生 | 医生 |
模板 | 定义可重用的内容、逻辑和参数。 | 医生 | ||
触发器 | 定义导致管道运行的事件。 | 医生 | 医生 | 医生 |
变量 | 可在管道执行过程中使用的值的占位符。 | 医生 | 医生 | 医生 |
变量组 | 用于存储想要跨多个管道管理和共享的值和机密。 | 医生 | 医生 | 医生 |
Feature | 说明 | YAML | 经典管道 | 经典发布 |
---|---|---|---|---|
代理 | 在虚拟机或物理计算机上运行的软件组件,负责执行 Azure Pipelines 中定义的任务。 | 医生 | 医生 | 医生 |
审批 | 在部署到阶段之前,要求指定的审批者批准部署工作流。 | 医生 | 医生 | |
项目 | 下载二进制文件和各种类型的包并将其发布到不同的目标。 | 医生 | 医生 | 医生 |
条件 | 指定步骤、作业或阶段应运行的条件。 | 医生 | 医生 | 医生 |
Container jobs(容器作业) | 指定要在容器中运行的作业。 | 医生 | ||
要求 | 确保管道所需的功能存在于正在运行的代理上。 | 医生 | 医生 | 医生 |
依赖项 | 指定必须满足的要求才能运行下一阶段。 | 医生 | 医生 | |
部署组和环境 | 部署组(经典):定义一组配备部署代理的目标计算机。 环境(YAML):针对部署的资源集合。 |
医生 | 医生 | |
部署作业 | 针对环境按顺序运行的部署步骤的集合。 | 医生 | ||
Gates | 在完成部署之前,通过评估外部服务的运行状况信号来自动执行发布控制。 | 医生 | ||
作业 | 一系列顺序步骤,构成可计划运行的最小工作单元。 | 医生 | 医生 | 医生 |
Library | 可在 Azure Pipelines 中使用的资产集合。 库包含两种类型的资产: 变量组 和安全 文件。 | 医生 | 医生 | 医生 |
服务连接 | 启用与执行作业中任务所需的外部服务的连接。 | 医生 | 医生 | 医生 |
阶段 | 在管道中组织作业。 | 医生 | 医生 | |
任务组 | 将一系列任务封装到单个可重用的任务中。 | 医生 | 医生 | |
任务 | 定义构成管道作业的步骤的构建基块。 | 医生 | 医生 | 医生 |
模板 | 定义可重用的内容、逻辑和参数。 | 医生 | ||
触发器 | 定义导致管道运行的事件。 | 医生 | 医生 | 医生 |
变量 | 可在管道执行过程中使用的值的占位符。 | 医生 | 医生 | 医生 |
变量组 | 用于存储想要跨多个管道管理和共享的值和机密。 | 医生 | 医生 | 医生 |
Feature | 说明 | YAML | 经典管道 | 经典发布 |
---|---|---|---|---|
代理 | 在虚拟机或物理计算机上运行的软件组件,负责执行 Azure Pipelines 中定义的任务。 | 医生 | 医生 | 医生 |
审批 | 在部署到阶段之前,要求指定的审批者批准部署工作流。 | 医生 | 医生 | |
项目 | 下载二进制文件和各种类型的包并将其发布到不同的目标。 | 医生 | 医生 | 医生 |
条件 | 指定步骤、作业或阶段应运行的条件。 | 医生 | 医生 | 医生 |
Container jobs(容器作业) | 指定要在容器中运行的作业。 | 医生 | ||
要求 | 确保管道所需的功能存在于正在运行的代理上。 | 医生 | 医生 | 医生 |
依赖项 | 指定必须满足的要求才能运行下一阶段。 | 医生 | 医生 | |
部署组 | 定义一组配备部署代理的目标计算机。 | 医生 | ||
部署作业 | 针对环境按顺序运行的部署步骤的集合。 | 医生 | ||
Gates | 在完成部署之前,通过评估外部服务的运行状况信号来自动执行发布控制。 | 医生 | ||
作业 | 一系列顺序步骤,构成可计划运行的最小工作单元。 | 医生 | 医生 | 医生 |
Library | 可在 Azure Pipelines 中使用的资产集合。 库包含两种类型的资产: 变量组 和安全 文件。 | 医生 | 医生 | 医生 |
服务连接 | 启用与执行作业中任务所需的外部服务的连接。 | 医生 | 医生 | 医生 |
阶段 | 在管道中组织作业。 | 医生 | 医生 | |
任务组 | 将一系列任务封装到单个可重用的任务中。 | 医生 | 医生 | |
任务 | 定义构成管道作业的步骤的构建基块。 | 医生 | 医生 | 医生 |
模板 | 定义可重用的内容、逻辑和参数。 | 医生 | ||
触发器 | 定义导致管道运行的事件。 | 医生 | 医生 | 医生 |
变量 | 可在管道执行过程中使用的值的占位符。 | 医生 | 医生 | 医生 |
变量组 | 用于存储想要跨多个管道管理和共享的值和机密。 | 医生 | 医生 | 医生 |
后续步骤
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈