使用 Azure Pipelines

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

Azure Pipelines 支持使用持续集成 (CI) 和持续交付 (CD) 来持续测试、生成和部署代码。 可定义管道来实现此目的。

生成管道的最新方法是使用 YAML 管道编辑器。 还可以通过经典编辑器使用经典管道。

自动执行测试、生成和交付

持续集成 (CI) 可实现项目的测试和生成自动化。 CI 有助于在开发周期的早期发现 bug 或问题,这样就可以更容易、更快速地修复它们。 称为项目的项是从 CI 系统生成的。 持续交付发布管道使用它们来推动自动部署。

持续交付可在多个阶段自动部署和测试代码,以帮助提高质量。 持续集成系统会生成可部署的项目,其中包括基础结构和应用。 自动发布管道使用这些项目将新版本和修补程序发布到所选目标。

持续集成 (CI) 持续交付 (CD)
- 提高代码覆盖率
- 通过对测试和生成运行进行拆分来提高生成速度
- 自动确保不会发送损坏的代码
- 持续运行测试
- 自动将代码部署到生产环境
- 确保部署目标具有最新代码
- 使用 CI 流程中的经过测试的代码

使用 YAML 语法定义管道

在名为 azure-pipelines.yml 的 YAML 文件中使用应用的其余部分来定义管道。

管道 YAML 简介图

  • 通过代码对管道进行版本控制。 它遵循相同的分支结构。 可通过拉取请求和分支生成策略中的代码评审来验证更改。
  • 你使用的每个分支都可以通过修改 azure-pipelines.yml 文件来修改管道。 详细了解 YAML 管道的分支注意事项
  • 更改生成过程可能会导致中断,也可能会造成意外的结果。 由于更改的是代码库其余部分的版本控制,因此你可以更轻松地识别问题。

请遵循以下基本步骤:

  1. 将 Azure Pipelines 配置为使用 Git 存储库。
  2. 编辑 azure-pipelines.yml 文件以定义生成。
  3. 将代码推送到版本控制存储库。 此操作将启动默认触发器,以生成并部署结果,然后监视结果。

现已更新、构建、测试并打包代码。 可将其部署到任何目标。

使用经典界面定义管道

使用经典用户界面编辑器在 Azure DevOps Web 门户中创建和配置管道。 定义“生成管道”以生成和测试代码,然后发布项目。 你还可以定义“发布管道”以使用这些项目并将其部署到部署目标。

管道设计器简介图

请遵循以下基本步骤:

  1. 将 Azure Pipelines 配置为使用 Git 存储库。
  2. 使用 Azure Pipelines 经典编辑器创建和配置生成和发布管道。
  3. 将代码推送到版本控制存储库。 此操作触发管道并运行生成或测试代码等任务。

该生成创建一个工件,管道的其余部分将此工件用于运行任务(例如部署到过渡或生产环境)。

现已更新、构建、测试并打包代码。 可将其部署到任何目标。

功能可用性

某些管道功能仅在使用 YAML 时可用,或在使用经典界面定义生成或发布管道时可用。 下表指示哪些功能受支持,以及这些功能适用于哪些任务和方法。

Feature YAML 经典生成 经典发布 说明
代理 指定一个用于运行管道的必需的资源。
审批 定义一组完成部署阶段前需要执行的验证。
项目 支持发布或使用不同的包类型。
缓存 允许一个运行中的输出或下载的依赖项在以后的运行中被重用,通过这种方式来减少生成时间。 处于预览阶段,仅在 Azure Pipelines 中提供。
条件 指定需在运行作业前满足的条件。
Container jobs(容器作业) 指定要在容器中运行的作业。
需求 确保在运行管道阶段之前满足管道要求。 需要自托管代理。
依赖项 指定运行下一个作业或阶段必须满足的要求。
部署组 定义部署目标计算机的逻辑集。
部署组作业 指定要发布到部署组的作业。
部署作业 定义部署步骤。
环境 表示以部署为目标的资源的集合。 仅在 Azure Pipelines 中提供。
Gates 支持在完成发布阶段之前自动收集和评估外部运行状况信号。 仅适用于经典发布。
作业 定义一组步骤的执行顺序。
服务连接 启用在作业中执行任务所需的与远程服务的连接。
服务容器 使你能管理容器化服务的生命周期。
阶段 组织管道内的作业。
任务组 将一系列任务封装到一个可重用的任务中。 如果使用 YAML,请参阅模板。
任务 定义构成管道的构建基块。
模板 定义可重用的内容、逻辑和参数。
触发器 定义导致管道运行的事件。
变量 表示要被传递给管道的数据替代的值。
变量组 用于存储你要控制并在多个管道中提供的值。

后续步骤

Create your first pipeline(创建第一个管道)