Azure DevOps Pipelines 快速入门
Azure Pipelines 是一套由微软 Azure DevOps 提供的CI(持续集成)、CT(持续测试)、CD(持续交付)工具集。如果使用过 Github Actions、GitHub CI 等现代 CI/CD 工具,那么就会很快上手。但毕竟它们是不同的工具,有各自的理念和特色。为了帮助使用过 Github Actions 等工具的工程师能够快速熟悉 Azure Pipelines,本文列出它的一些关键要点。
官方文档 🔗
官方文档见《Azure Pipelines 文档》。
关键要点 🔗
管道定义文件 🔗
默认的管道定义文件为代码仓库根目录下的 azure-pipelines.yml
文件。
当然,也可以在 Azure DevOps Web 的门户网站里,导航到具体的管道里,修改YAML文件的路径。可参考《管道设置》。
在大型项目中,如何组织多个项目的管道定义,是一个值得讨论的决策。在一些风格中,会将多个小项目的集中在一个代码仓库中进行管理,于是这个管道仓库中就会包含很多个管道定义。此时,“自定义YAML文件路径”就派上用场了。
预定义变量 🔗
在管道定义中可使用预定义的变量,参见文档 《Use predefined variables》 。
内置任务 🔗
Azure Pipelines 内置了常见生成、部署、包管理、测试等相关的任务,见文档 《Azure Pipelines 任务参考》。
模板 🔗
复用管道定义 🔗
在大型项目中,管道的定义变得复杂起来:可能膨胀地异常庞大和复杂;也可能在多个项目代码仓库中出现类似的步骤,出现很多重复片段。这都让管道的定义变得难以理解和维护。
为此,可以将管道定义模块化,通过有层次的模块组织,分离关注点;或者将重复的管道定义,放在单独的代码仓库中,然后在其他项目中引用。这都可以通过 Azure Pipelines 的“模板”实现。见《模板使用情况参考》。
表达式 🔗
模板表达式在编译时或者运行时进行求值,并内建了多个函数。具体见文档:
日志记录 🔗
文档见《日志记录命令》。以下是几个比较有用的:
- Complete:完成时间线:完成当前任务的时间线记录,设置任务结果和当前操作。如果将结果设置为
Failed
,那么当前的任务就会失败退出(如果选择了“控制选项: 出错时继续”选项,则生成最多只能部分成功完成)。 - UpdateBuildNumber:替代自动生成的生成号:自定义生成号(Build Number)。生成号的相关说明见《Run and build numbers》。
IDE/编辑器支持 🔗
微软提供了 VS Code 扩展 Azure Pipelines。它不仅提供语法高亮、自动提示等功能。
后记 🔗
Azure Pipelines 的中文文档,似乎是用AI生成的,读起来机器味儿很重。如果有条件,可以阅读英文文档。