Gitee 如何使用 AzurePipeLine 构建项目
写在前面
在持续集成中,PipeLine
(工作流)将构建/部署任务拆解成为若干部分,然后串联起来构成一个流水线作业,通过程序触发/定期执行的方式实现任务的自动构建。
目前已经有了很多平台支持 Pipeline
的功能,本文将就 Gitee
如何通过 Azure Pipeline
构建项目做记录分享。
Azure PipeLine 简介
Azure Pipeline
是由微软推出的 Azure Devops
的 CI
部分,其前身是 VSTS
。目前 Azure Pipeline
支持 Node.js
、Python
、Java
、PHP
、Ruby
、C
/C++
、.NET
、Android
、iOS
等语言在 Linux
、macOS
和 Windows
操作系统的云上进行构建和部署,可谓是非常强大。
除此之外,Azure Pipelines
为开源项目免费地提供 CI
/CD
不限时服务和 10 个并行作业。所有开源项目都免费运行在同样的基础架构上,也就意味着具有同样性能和服务质量。对于开源项目而言,这是极大的方便并节省了开发者需要付出的成本。
更多信息和详情可通过访问 Azure Pipeline 介绍 了解。
准备环境
在学习 Gitee 如何使用 Azure Pipeline 进行项目构建之前,我们需要准备如下内容:
- 一个 Gitee 账号
- 一个微软账号
- 在 Gitee 上托管一个准备用于构建的项目,在本文中我们将以 layui 为例。
一般常见的 PipeLine 大致的流程如下:
- 用户将代码提交到 Git 仓库
- Pipeline 服务从 Git 仓库拉取最新代码
- Pipeline 服务根据配置好的工作流中,依次执行构建/部署工作
Pipeline 集成流程
访问并通过微软账号登陆 Azure Devops 主页,首次访问的时候会让我们创建一个组织。
在点击**「Continue」按照提示输入组织名称和地区后点击创建后,会提示我们创建一个 Devops
项目。此处我们只需要填写「Project Name」(项目名称)和「Description」(项目描述),选择「Public」(开放项目)并点击「Create Project」**即可。
在创建完成后,我们得到了如下的一个控制台,本文将重点介绍 Pipelines
部分的功能和特点。
依次点击菜单**「Pipelines」->「Builds」,在首次创建的 Pipelines
的时候将会提示没有 Pipelines
,所以我们点击「Create pipeline」**,进入 Pipelines
创建流程。
关联 Git 仓库
首次创建 Pipelines
需要项目关联一个 Git
仓库,本文将以 layui 为实践,所以我们事先 Fork 了 layui 的项目到 Gitee 的账号下,地址为:https://gitee.com/normalcoder/layui 。
同时,在仓库主页通过「管理」->「部署公钥管理」->「添加公钥」,我们添加了一个用于集成构建部署的 SSH Key,具体 SSH Key 操作使用可以访问 Gitee 帮助中心 - SSH 公钥设置 查看了解,这里就不做过多讲解。
回到 Azure Pipeline
,在创建 pipeline
的第一步中点击**「Use the visual designer」,在自定义仓库视图中我们选择「External Git」,并通过「Add connection」**添加我们的 Git 仓库信息和授权部署的 SSH Key
。
配置完成后,我们将得到成功访问仓库的提示并被要求选择构建用的分支信息。在此默认选择**「master」,点击「Continue」**继续。
设置构建流程
接下去我们将选择构建的流程,Azure Devops
提供了非常多的构建流程模板,我们也可以自行定义自己的构建部署流程。由于 layui 使用了 gulp
作为构建方式,所以我们默认选择 gulp
的构建流程。
选择完构建类型,我们需要进一步对构建细节进行配置,包括指定构建环境的操作系统等等。在此我选择的是基于 macOS
进行构建。由于 layui 的构建并不复杂,所以我们可以直接使用缺省的构建方案,点击**「Save & queue」->「Save」**保存。
完成第一次构建
回到**「Pipelines」->「Builds」,选择我们创建的 pipeline
,选择「Queue」或「Run」**,开始我们第一次的构建。
选择基于 macOS
的构建环境,默认使用 master
分支,在此我们需要指定一次 commit
用于做本次构建的版本。
点击构建后,我们在右侧的**「History」**栏目可以看到当前的构建任务状态。点击任务详情,可以对构建过程中的内容进行查看。
在 Gitee 仓库中引用构建状态信息
回到构建任务列表,在 pipeline
详情页面,我们可以通过**「Status Badge」**将项目的实时构建状态关联并反馈在仓库上。
在**「Status Badge」中复制「Sample Markdown」**一列,将 Markdown
信息放到 Git 仓库的 Readme.md 中。添加完成后效果如图。
启用持续集成
在完成了将项目从 Gitee
到 Azure Devops
的构建实现后,为了每次更新代码并 Push 到仓库能够及时构建,我们还需要启动对项目的持续集成功能。
在项目 Pipeline
的详情中找到**「Triggers」标签页,将「repository」的「Enable continuous integration」**选项打开,即可开启项目持续集成。其中的选项的解释如下:
- Polling interval (seconds):轮询时间,
Azure
将会以秒为最小单位,按照配置的单位间隔对仓库轮询进行定期构建。 - Branch filters:用于决定持续集成过程中对哪些分支进行构建,支持条件组成。
总结
通过将 Gitee
的代码仓库与 Azure Devops Pipelines
对接,开发者可以轻松完成项目的持续集成 (CI)
工作,在持续的基础上收到项目的反馈并进行改进,进而提升开发效率,缩短研发周期,不必等到开发周期后期才寻找和修复缺陷。作为现代软件开发技术的基础,持续集成
在研发环节起到至关重要的作用,值得每个人去关注和学习。