Azure DevOps Pipelines 是 Azure DevOps 中的 CI/CD 服务,可为任意语言、平台和云提供持续集成与持续交付能力。
用途
该技能面向需要在 Azure DevOps 中设计、编写和维护 CI/CD 管道的场景。YAML 管道是推荐方式,具备版本控制、代码评审和模板可扩展性;经典发布管道仍受支持,用于既有部署,但新项目建议迁移到 YAML 多阶段管道。
主要能力
核心概念方面:阶段(stages)用于分组作业,作业(jobs)在代理上运行,步骤(steps)执行任务或脚本。部署环境(deployment environments)提供审批门、审计历史和资源定位。服务连接(service connections)使用工作负载身份联合(WIF)、托管标识或服务主体对外部服务进行身份验证。
REST API 覆盖多个方面:管道 API(列出、获取、创建管道,以及运行管道、查询运行记录);构建 API(经典,创建构建、获取构建、按定义/分支/状态过滤、获取日志);发布 API(经典,获取发布定义、创建发布、获取发布、更新发布环境状态,注意发布 API 使用 vsrm.dev.azure.com 基础 URL);环境 API(列出、创建、删除环境,以及检查配置的获取与创建);代理池 API(列出池、列出池内代理)。
YAML 管道结构包含触发器(trigger)、池(pool)、阶段(stages)、作业(jobs)、步骤(steps)、部署作业(deployment)、环境(environment)和部署策略(strategy)等元素。
关键概念包括:触发器支持 CI(分支)、PR、计划(cron)、管道完成和手动触发;模板支持 extends(强制组织标准)和 template(复用步骤/作业/阶段);环境是带审批门、独占锁和部署历史的命名目标;服务连接是经过身份验证的终结点(Azure、Docker、K8s),优先使用 WIF 而非服务主体加密钥;变量组是共享变量,可链接到 Key Vault,并按管道授权;部署策略包括 runOnce、rolling、canary 及生命周期钩子;代理池分为 Microsoft 托管(ubuntu/windows/macos-latest)或带自定义能力的自托管。
使用方式
通过 YAML 定义管道,使用 trigger 配置分支和路径触发,pool 指定代理镜像,stages 组织阶段,jobs 定义作业,steps 执行脚本或任务。部署作业使用 deployment 关键字并指定 environment 和 strategy。可通过 REST API 以编程方式管理管道、构建、发布、环境和代理池,调用时需注意所需权限和参数。
适用场景
适用于为任意语言、平台和云构建 CI/CD 流程;需要版本控制、代码评审和模板复用的团队;需要审批门、审计历史和资源定位的生产部署;需要管理服务连接、变量组和代理池的组织。
限制
资料未提供具体的收费、价格、平台限制或效果数据。经典发布管道虽仍受支持,但新项目建议迁移到 YAML 多阶段管道。发布 API 使用 vsrm.dev.azure.com 基础 URL。部分 API 需要特定权限(如 Build Read、Read & Write、Read & Execute)。检查配置 API 使用 7.1-preview 版本。