使用 Azure Pipelines
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019 | TFS 2018
Azure Pipelines 支持使用持续集成 (CI) 和持续交付 (CD) 来持续测试、生成和部署代码。 可定义管道来实现此目的。
生成管道的最新方法是使用 YAML 管道编辑器。 还可以通过经典编辑器使用经典管道。
Azure Pipelines 支持使用持续集成 (CI) 和持续交付 (CD) 来持续测试、生成和部署代码。 为此,你可以使用用户界面(也称为经典用户界面)来定义管道。
注意
在 Microsoft Team Foundation Server (TFS) 2018 和更低版本中,生成和发布管道被称为“定义”,运行被称为“生成”,服务连接被称为“服务终结点”,阶段被称为“环境”,而作业被称为“阶段” 。
自动执行测试、生成和交付
持续集成 (CI) 可实现项目的测试和生成自动化。 CI 有助于在开发周期的早期发现 bug 或问题,这样就可以更容易、更快速地修复它们。 称为项目的项是从 CI 系统生成的。 持续交付发布管道使用它们来推动自动部署。
持续交付可在多个阶段自动部署和测试代码,以帮助提高质量。 持续集成系统会生成可部署的项目,其中包括基础结构和应用。 自动发布管道使用这些项目将新版本和修补程序发布到所选目标。
持续集成 (CI) | 持续交付 (CD) |
---|---|
- 提高代码覆盖率 - 通过对测试和生成运行进行拆分来提高生成速度 - 自动确保不会发送损坏的代码 - 持续运行测试 |
- 自动将代码部署到生产环境 - 确保部署目标具有最新代码 - 使用 CI 流程中的经过测试的代码 |
使用 YAML 语法定义管道
在名为 azure-pipelines.yml
的 YAML 文件中使用应用的其余部分来定义管道。
- 通过代码对管道进行版本控制。 它遵循相同的分支结构。 可通过拉取请求和分支生成策略中的代码评审来验证更改。
- 你使用的每个分支都可以通过修改
azure-pipelines.yml
文件来修改管道。 详细了解 YAML 管道的分支注意事项。 - 更改生成过程可能会导致中断,也可能会造成意外的结果。 由于更改的是代码库其余部分的版本控制,因此你可以更轻松地识别问题。
请遵循以下基本步骤:
- 将 Azure Pipelines 配置为使用 Git 存储库。
- 编辑
azure-pipelines.yml
文件以定义生成。 - 将代码推送到版本控制存储库。 此操作将启动默认触发器,以生成并部署结果,然后监视结果。
现已更新、构建、测试并打包代码。 可将其部署到任何目标。
YAML 管道在 TFS 2018 及更低版本中不可用。
使用经典界面定义管道
使用经典用户界面编辑器在 Azure DevOps Web 门户中创建和配置管道。 定义“生成管道”以生成和测试代码,然后发布项目。 你还可以定义“发布管道”以使用这些项目并将其部署到部署目标。
请遵循以下基本步骤:
- 将 Azure Pipelines 配置为使用 Git 存储库。
- 使用 Azure Pipelines 经典编辑器创建和配置生成和发布管道。
- 将代码推送到版本控制存储库。 此操作触发管道并运行生成或测试代码等任务。
该生成创建一个工件,管道的其余部分将此工件用于运行任务(例如部署到过渡或生产环境)。
现已更新、构建、测试并打包代码。 可将其部署到任何目标。
功能可用性
某些管道功能仅在使用 YAML 时可用,或在使用经典界面定义生成或发布管道时可用。 下表指示哪些功能受支持,以及这些功能适用于哪些任务和方法。
Feature | YAML | 经典生成 | 经典发布 | 说明 |
---|---|---|---|---|
代理 | ✅ | ✅ | ✅ | 指定一个用于运行管道的必需的资源。 |
审批 | ✅ | ❌ | ✅ | 定义一组完成部署阶段前需要执行的验证。 |
项目 | ✅ | ✅ | ✅ | 支持发布或使用不同的包类型。 |
缓存 | ✅ | ✅ | ❌ | 允许一个运行中的输出或下载的依赖项在以后的运行中被重用,通过这种方式来减少生成时间。 处于预览阶段,仅在 Azure Pipelines 中提供。 |
条件 | ✅ | ✅ | ✅ | 指定需在运行作业前满足的条件。 |
Container jobs(容器作业) | ✅ | ❌ | ❌ | 指定要在容器中运行的作业。 |
需求 | ✅ | ✅ | ✅ | 确保在运行管道阶段之前满足管道要求。 需要自托管代理。 |
依赖项 | ✅ | ✅ | ✅ | 指定运行下一个作业或阶段必须满足的要求。 |
部署组 | ❌ | ❌ | ✅ | 定义部署目标计算机的逻辑集。 |
部署组作业 | ❌ | ❌ | ✅ | 指定要发布到部署组的作业。 |
部署作业 | ✅ | ❌ | ❌ | 定义部署步骤。 |
环境 | ✅ | ❌ | ❌ | 表示以部署为目标的资源的集合。 仅在 Azure Pipelines 中提供。 |
Gates | ❌ | ❌ | ✅ | 支持在完成发布阶段之前自动收集和评估外部运行状况信号。 仅适用于经典发布。 |
作业 | ✅ | ✅ | ✅ | 定义一组步骤的执行顺序。 |
服务连接 | ✅ | ✅ | ✅ | 启用在作业中执行任务所需的与远程服务的连接。 |
服务容器 | ✅ | ❌ | ❌ | 使你能管理容器化服务的生命周期。 |
阶段 | ✅ | ❌ | ✅ | 组织管道内的作业。 |
任务组 | ❌ | ✅ | ✅ | 将一系列任务封装到一个可重用的任务中。 如果使用 YAML,请参阅模板。 |
任务 | ✅ | ✅ | ✅ | 定义构成管道的构建基块。 |
模板 | ✅ | ❌ | ❌ | 定义可重用的内容、逻辑和参数。 |
触发器 | ✅ | ✅ | ✅ | 定义导致管道运行的事件。 |
变量 | ✅ | ✅ | ✅ | 表示要被传递给管道的数据替代的值。 |
变量组 | ✅ | ✅ | ✅ | 用于存储你要控制并在多个管道中提供的值。 |
TFS 2015 到 TFS 2018 仅支持经典界面。 下表指示定义生成或发布管道时可用的管道功能。
功能 | 经典生成 | 经典发布 | 说明 |
---|---|---|---|
代理 | ✅ | ✅ | 指定一个用于运行管道的必需的资源。 |
审批 | ❌ | ✅ | 定义一组完成部署阶段前需要执行的验证。 |
项目 | ✅ | ✅ | 支持发布或使用不同的包类型。 |
条件 | ✅ | ✅ | 指定需在运行作业前满足的条件。 |
需求 | ✅ | ✅ | 确保在运行管道阶段之前满足管道要求。 需要自托管代理。 |
依赖项 | ✅ | ✅ | 指定运行下一个作业或阶段必须满足的要求。 |
部署组 | ❌ | ✅ | 定义部署目标计算机的逻辑集。 |
部署组作业 | ❌ | ✅ | 指定要发布到部署组的作业。 |
作业 | ✅ | ✅ | 定义一组步骤的执行顺序。 |
服务连接 | ✅ | ✅ | 启用在作业中执行任务所需的与远程服务的连接。 |
阶段 | ❌ | ✅ | 组织管道内的作业。 |
任务组 | ✅ | ✅ | 将一系列任务封装到一个可重用的任务中。 如果使用 YAML,请参阅模板。 |
任务 | ✅ | ✅ | 定义构成管道的构建基块。 |
触发器 | ✅ | ✅ | 定义导致管道运行的事件。 |
变量 | ✅ | ✅ | 表示要被传递给管道的数据替代的值。 |
变量组 | ✅ | ✅ | 用于存储你要控制并在多个管道中提供的值。 |
后续步骤
Create your first pipeline(创建第一个管道)