跳到主要内容

Gitee 如何使用 AzurePipeLine 构建项目

写在前面

在持续集成中,PipeLine(工作流)将构建/部署任务拆解成为若干部分,然后串联起来构成一个流水线作业,通过程序触发/定期执行的方式实现任务的自动构建。

目前已经有了很多平台支持 Pipeline 的功能,本文将就 Gitee 如何通过 Azure Pipeline 构建项目做记录分享。

Azure PipeLine 简介

Azure Pipeline 是由微软推出的 Azure DevopsCI 部分,其前身是 VSTS 。目前 Azure Pipeline 支持 Node.jsPythonJavaPHPRubyC/C++.NETAndroidiOS 等语言在 LinuxmacOSWindows 操作系统的云上进行构建和部署,可谓是非常强大。

除此之外,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 中。添加完成后效果如图。

启用持续集成

在完成了将项目从 GiteeAzure Devops 的构建实现后,为了每次更新代码并 Push 到仓库能够及时构建,我们还需要启动对项目的持续集成功能。

在项目 Pipeline 的详情中找到**「Triggers」标签页,将「repository」「Enable continuous integration」**选项打开,即可开启项目持续集成。其中的选项的解释如下:

  • Polling interval (seconds):轮询时间,Azure 将会以秒为最小单位,按照配置的单位间隔对仓库轮询进行定期构建。
  • Branch filters:用于决定持续集成过程中对哪些分支进行构建,支持条件组成。

总结

通过将 Gitee 的代码仓库与 Azure Devops Pipelines对接,开发者可以轻松完成项目的持续集成 (CI)工作,在持续的基础上收到项目的反馈并进行改进,进而提升开发效率,缩短研发周期,不必等到开发周期后期才寻找和修复缺陷。作为现代软件开发技术的基础,持续集成在研发环节起到至关重要的作用,值得每个人去关注和学习。