【持续集成】使用Travis CI来持续集成你的开源项目

前言

最近负责一个开源项目LEP的“持续集成”模块,之前从来都没有听说过的新概念,所以在这里记录一下最近的收获。

正文

什么是持续集成

首先持续集成(continuous integration)这个概念很多人都没有听说过(我自己还翻了翻这学期的《软件工程》课本,只有集成测试)。

那么什么是持续集成呢?

引用知乎上@赵劼的回答

集成是指软件个人研发的部分向软件整体部分交付,以便尽早发现个人开发部分的问题;

而所谓的持续,就是说每完成一个完整的部分,就向下个环节交付,发现问题可以马上调整。是的(大概是笔误,应为“使得”—康康注)问题不会放大到其他部分和后面的环节。

引用知乎上@yumminhuang的回答和图

持续集成强调开发人员提交了新代码之后,立刻进行构建、(单元)测试。根据测试结果,我们可以确定新代码和原有代码能否正确地集成在一起。

这里写图片描述

这个图能让我们理清持续集成要做什么,即向项目提交修改,马上进行构建(或者说编译),然后进行相应的测试,反馈结果,保证尽快合并,使得小改动不会累计为大改动,以至于出现更多的问题。

对于私有项目,或者说公司的项目来说,我们需要配置一套额外的服务器作为CI Server,而对于开源项目或者小团队来说,如果能有简单可靠还免费的CI服务就好了(成本问题)。而Travis CI则满足了我们的需求。

Travis CI

Travis CI是一个非常方便的持续集成工具,相对于需要自己配置部署环境的Jenkens,Travis CI更适合开源项目(当然后者更加成熟,更加适合私有项目和企业内的项目)。很多大型的开源项目,比如google的protobuf等,都使用Travis CI来进行持续集成。

使用Travis CI来进行持续集成

我们假定你的开源项目存放在github。

首先使用github帐号登录Travis CI官网
也就是右上角的sign in

这里写图片描述

然后同步你的仓库
点击左侧的+号
这里写图片描述

左上角的sync account即可同步

这里写图片描述

然后在下面打开指定仓库就可以了。

同时我们需要在仓库中编写一份名为.travis.yml的配置文件,来指定我们的项目需要进行怎样的操作。
这里以我自己编写的LEPD项目为例

sudo: required
language: c
complier: gcc
script: make
before_script: sudo apt-get install libev-dev
notifications:
  email:
    recipients:
      - xxx@gmail.com
    on_success: change
    on_failure: always

可以看到这里指定了需要的sudo权限,编程语言,编译器,script即执行的操作,before_script则安装了项目依赖的libev-dev包,通知的方式email,并且指定了邮件地址。

而对于不同语言等更多细节,还需查看官方文档

然后便是愉快的commit,可以在官网上查看log,同时邮箱里也会有通知。

参考阅读 & 引用

如何理解持续集成、持续交付、持续部署?
持续集成是什么?
六款不容错过的开源持续集成工具
用持续集成工具Travis进行构建和部署

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章