关于 ado-pipeline-best-practices
用于创建和维护 Azure DevOps YAML 流水线的实践指南,重点涵盖流水线结构、变量安全、验证流程和构建效率。
主要功能
- 01多阶段流水线组织
- 02触发器与计划任务建议
- 03密钥和变量管理
- 04缓存与可复用模板
- 05安全和性能检查
适用场景
- 01编辑前检查 Azure DevOps 流水线
- 02拆分构建、测试、打包和部署阶段
- 03避免凭据硬编码
- 04用路径筛选和缓存减少无效构建
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ josiahsiegel/ claude-plugin-marketplace --skill ado-pipeline-best-practices安装后在 Claude Code 中输入/ado-pipeline-best-practices确认已加载。
详细介绍
Azure Pipelines 最佳实践
创建和维护 Azure DevOps YAML 管道的全面最佳实践。
核心审查流程
- 在编辑 YAML 前,确定触发器范围、部署环境和所需审批。
- 验证机密是否通过服务连接、Key Vault、机密变量或安全文件传递;切勿将凭据直接写入 YAML。
- 固定任务主版本,并将重复步骤集中到模板中。
- 仅在路径筛选、缓存和并行作业确实能降低构建成本且不会掩盖验证时才添加它们。
- 通过阶段或作业将构建、测试、打包和部署职责分开。
- 在建议 rollout 前,使用 Azure DevOps 管道 YAML 验证或试运行进行验证。
管道结构
多阶段管道:
# Recommended structure
stages:
- stage: Build
- stage: Test
- stage: DeployDev
- stage: DeployStaging
- stage: DeployProduction
优势:
- 清晰划分职责
- 按条件执行阶段
- 针对不同环境进行配置
- 在阶段之间设置审批门禁
触发器和计划
最佳实践:
- 使用路径筛选,避免不必要的构建
- 为高频提交的仓库启用批量构建
- 使用 PR 触发器进行验证
- 安排每晚/每周构建,进行全面测试
trigger:
batch: true
branches:
include: [main, develop]
paths:
exclude: ['docs/*', '**.md']
pr:
autoCancel: true
branches:
include: [main]
schedules:
- cron: '0 0 * * *'
displayName: 'Nightly build'
branches:
include: [main]
always: false # Only if code changed
变量管理
层级:
- 管道级变量(az devops YAML)
- 变量组(在多个管道间共享)
- Azure Key Vault(机密)
- 运行时参数(用户输入)
安全性:
- 切勿硬编码机密
- 使用 Key Vault 存储敏感数据
- 在变量组中将变量标记为机密
- 日志中的机密会自动屏蔽
缓存
为以下内容实施缓存:
- 包依赖(npm、pip、NuGet、Maven)
- Docker 层
- 构建输出
效果:
- 加快构建速度(最多可缩短 90%)
- 减少网络使用量
- 降低成本
模板
将模板用于:
- 可复用的构建模式
- 标准化的部署步骤
- 一致的安全扫描
- 全公司适用的最佳实践
优势:
- DRY(不要重复自己)
- 集中更新
- 流程一致
安全实践
必备项:
- 代码扫描(SAST、依赖项)
- 容器镜像扫描
- 机密扫描
- 合规性检查
- 分支保护策略
- 必需的审批
性能
优化方式:
- 并行运行彼此独立的作业
- 充分利用缓存
- 使用浅克隆 Git(fetchDepth: 1)
- 选择合适的 Agent 池
- 清理构建产物
监控
跟踪:
- 构建成功率
- 构建时长
- 测试通过率
- 部署频率
- 平均恢复时间(MTTR)
参考资料和搭配指南
- 使用 Microsoft Azure Pipelines YAML 架构文档,了解任务语法和新发布的功能。
- 替换服务主体机密时,搭配使用工作负载身份/OIDC 指南。
- 添加 SAST、依赖项、容器或 IaC 检查时,搭配使用安全扫描指南。
务必根据最新的 Azure DevOps 文档核实最佳实践。
评论
支持 Markdown