Azure DevOps:Boards、Repos 与 Pipelines
Azure DevOps 入门指南:掌握 Boards、Repos 与 Pipelines
Azure DevOps 是一套完整的软件开发协作工具,涵盖从规划、编码、构建到部署的全生命周期。本教程将带您快速理解其核心服务:Azure Boards(敏捷规划)、Azure Repos(版本控制)与 Azure Pipelines(持续集成/持续交付),并手把手完成您的第一次端到端流程实操。
环境准备与项目初始化
在开始之前,您需要一个 Azure DevOps 组织。如果尚未拥有:
- 访问 dev.azure.com 并点击“免费开始使用”。
- 使用 Microsoft 账户登录,创建新组织,并为组织选择一个唯一的 URL(如
https://dev.azure.com/yourorg)。 - 创建新项目:点击“新建项目”,填写项目名称(如
MyFirstProject),可见性选择“私有”,版本控制选择“Git”,工作项流程可选“敏捷”模板。
项目创建后,您将进入项目概览页面,左侧导航栏即为主要服务入口。
Azure Boards:敏捷规划与工作跟踪
Azure Boards 用于规划、跟踪和讨论团队的工作。它以工作项为核心,支持看板、积压工作(backlog)和冲刺管理。
工作项与积压工作
工作项是跟踪工作的基本单位,类型包括史诗(Epic)、功能(Feature)、用户故事(User Story)、任务(Task)、Bug 等。积压工作是待办事项的有序列表。
创建您的第一个用户故事:
- 在左侧菜单选择
Boards>Backlogs。 - 点击“新建工作项”,输入标题:“用户能查看商品列表”,按 Enter。
- 此时该故事出现在积压工作中。点击该条目,可在右侧窗格编辑详细信息:设置“业务价值”、添加描述、指派给团队成员。
看板可视化流程
看板(Boards)将工作项以卡片形式按状态列展示,如“新建议”、“已提交”、“进行中”、“已完成”。
- 进入
Boards>Boards,您将看到看板视图。 - 默认列可能不符合需求,自定义列:点击面板右上角的齿轮图标,在“列”选项卡中修改列名、添加工序限制(WIP Limit)以防止并行任务过多。
- 将积压工作中的用户故事拖拽至看板,并根据进度移动卡片。
将用户故事分解为任务:
- 点击用户故事卡片上的“+”添加任务,如“设计商品列表 API”“实现前端展示”“编写单元测试”,并逐个拖拽至相应的状态列。
冲刺规划
若团队使用 Scrum,可启用冲刺(Sprint):
Boards>Sprints,选择当前冲刺。- 将积压工作项拖拽至冲刺中,设定容量。
- 通过“任务面板”实时查看进度,生成燃尽图监控健康度。
通过 Boards,整个团队对“谁在做什么、当前是什么状态”一目了然。
Azure Repos:云端 Git 仓库与协作
Azure Repos 提供无限制的私有 Git 仓库,支持代码评审、分支策略与语义化版本。
克隆仓库
从项目首页获取 Repos URL:
- 进入
Repos>Files,您将看到自动创建的 README。 - 点击右上角“克隆”,复制 HTTPS URL(例如
https://dev.azure.com/yourorg/MyFirstProject/_git/MyFirstProject)。 - 本地终端执行:
git clone https://dev.azure.com/yourorg/MyFirstProject/_git/MyFirstProject cd MyFirstProject
若未配置凭据,系统会要求登录。可使用 Git Credential Manager 或生成个人访问令牌(PAT)。
基本提交与推送
创建新文件并首次提交:
echo "# MyFirstProject" >> README.md
git add .
git commit -m "初始化仓库,添加 README"
git push origin main
刷新网页 Repos > Files,即可看到更新。
分支与拉取请求
最佳实践是使用分支开发新功能,并通过拉取请求(Pull Request)合并代码。
git checkout -b feature/product-list
编写代码后提交推送:
git add .
git commit -m "实现商品列表 API"
git push origin feature/product-list
在 Azure Repos 网页上,点击“创建拉取请求”。填写标题和说明,指派审阅者。审阅者可在文件中逐行批注,批准后完成合并。
分支策略建议:使用主分支 main 保持稳定,开发分支 develop 集成功能,功能分支 feature/* 进行具体开发。
Repos 内建的仓库分析、文件内容搜索和提交历史使协作高效且可追溯。
Azure Pipelines:持续集成与持续交付
Pipelines 是自动化构建、测试和部署的引擎。支持 YAML 定义管道,或经典可视化编辑器(推荐使用 YAML)。
创建您的第一个生成管道(Build Pipeline)
我们以 Node.js 应用为例,自动化代码合规检查、测试和构建。
-
在项目根目录准备一个简单的 Node 应用结构与测试。
-
在根目录创建
.azure-pipelines/ci-pipeline.yml文件(也可放于项目根目录azure-pipelines.yml),内容如下:trigger: - main - feature/* pool: vmImage: 'ubuntu-latest' steps: - task: NodeTool@0 inputs: versionSpec: '18.x' displayName: '安装 Node.js' - script: | npm install npm run lint npm test displayName: '安装依赖、代码检查与测试' - task: PublishTestResults@2 condition: succeededOrFailed() inputs: testResultsFormat: 'JUnit' testResultsFiles: '**/test-results.xml' displayName: '发布测试结果' - task: ArchiveFiles@2 inputs: rootFolderOrFile: '$(System.DefaultWorkingDirectory)' includeRootFolder: false archiveType: 'zip' archiveFile: '$(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip' displayName: '归档构建产物' - task: PublishBuildArtifacts@1 inputs: PathtoPublish: '$(Build.ArtifactStagingDirectory)' ArtifactName: 'drop' displayName: '发布产物' -
进入
Pipelines>Pipelines,点击“创建管道”。选择“Azure Repos Git”,选取仓库,确认配置文件路径。保存并运行。 -
管道将自动触发:检查出代码、安装环境、执行 lint、测试,并将输出产物存档。运行详情可点击管道运行查看日志。
添加持续部署(Release Pipeline)
生成管道产出部署包后,通常连接发布管道以实现自动部署至 Azure 等环境。也可采用统一的多阶段 YAML 管道(推荐)。我们使用多阶段 YAML 来部署到 Azure App Service:
在 ci-pipeline.yml 末尾追加阶段:
- stage: Deploy
condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/main'))
jobs:
- job: DeployWeb
pool:
vmImage: 'ubuntu-latest'
steps:
- task: DownloadBuildArtifacts@0
inputs:
buildType: 'current'
downloadType: 'single'
artifactName: 'drop'
downloadPath: '$(System.ArtifactsDirectory)'
- task: AzureWebApp@1
inputs:
azureSubscription: 'YourServiceConnection'
appName: 'your-web-app-name'
package: '$(System.ArtifactsDirectory)/drop/$(Build.BuildId).zip'
这将确保只有 main 分支的提交在构建成功后自动部署。
服务连接:AzureWebApp 任务需要与 Azure 订阅建立服务连接,可在项目设置下的“Service connections”中创建。
测试与质量门槛
在管道中集成单元测试、代码覆盖率、安全扫描。例如,增加 SonarQube 或 WhiteSource 任务。可以配置分支策略,要求拉取请求必须通过成功的生成和最少审阅者批准才可合并,巩固代码质量。
三者联动:端到端工作流示例
让我们把 Boards、Repos、Pipelines 串联,走通一个完整的特性开发闭环:
- 规划:产品负责人在 Boards 中创建用户故事“用户能查看商品列表”,并分解为开发任务。
- 开发:开发人员将故事移至“进行中”,从 Repos 创建
feature/product-list分支进行编码。 - 代码评审:开发完成,推送分支,创建拉取请求。团队异步 Code Review,Azure Pipelines 自动触发 PR 验证管道(上述 CI 步骤),测试通过、审阅批准后合并至
main。 - 持续交付:合并到
main触发完整的 CI/CD 管道,自动构建、测试,并部署到预生产环境。 - 完成与反馈:部署成功,工作项通过集成自动关联提交,状态改为“已完成”。团队在冲刺评审中收集反馈,在 Boards 中更新积压工作。
这种集成消除了手动交接,显著缩短交付周期。
进阶资源与下一步
- Azure Test Plans:手动测试与探索测试工具,补充自动化测试。
- Azure Artifacts:包管理,托管 NuGet、npm、Maven 等包源,与 Pipelines 深度集成。
- 市场扩展:浏览 Visual Studio Marketplace 安装 Slack 通知、ChatOps、安全扫描等扩展。
- 文档中心:访问微软官方学习路径“使用 Azure DevOps 实施 DevOps 开发流程”。
本教程聚焦于 DevOps 核心闭环——敏捷规划、源码协作与自动化交付。建议从工具入手,逐步优化流程与指标,让整个团队受益于 DevOps 文化与自动化能力。