【持续集成】使用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进行构建和部署

Redmine是用Ruby开发的基于web的项目管理软件,是用ROR框架开发的一套跨平台项目管理系统,支持多种数据库,有不少自己独特的功能,例如提供wiki、新闻台等,还可以集成其他版本管理系统和BUG跟踪系统,例如Perforce、SVN、CVS、TD等等。这种 Web 形式的项目管理系统通过"项目(Project)"的形式把成员、任务(问题)、文档、讨论以及各种形式的资源组织在一起,大家参与更新任务、文档等内容来推动项目的进度,同时系统利用时间线索和各种动态的报表形式来自动给成员汇报项目进度。 Git 是用于 Linux 内核开发的版本控制工具。与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持,使源代码的发布和交流极其方便。 Git 的速度很快,这对于诸如 Linux kernel 这样的大项目来说自然很重要。 Git 最为出色的是它的合并跟踪(merge tracing)能力。 Sonarqube是一个用于代码质量管理的开源平台,用于管理源代码的质量,可以从七个维度检测代码质量,通过插件形式,可以支持包括java,C#,C/C++,PL/SQL,Cobol,JavaScrip,Groovy等等二十几种编程语言的代码质量管理与检测 Jenkins是一个开源软件项目,旨在提供一个开放易用的软件平台,使持续集成变成经济可行 Robot Framework是一款python编写的功能自动化测试框架。具备良好的可扩展性,支持关键字驱动,可以同时测试多种类型的客户端或者接口,可以进行分布式测试执行。主要用于轮次很多的验收测试和验收测试驱动开发(ATDD)。 Robot Framework + Selenium Grid 构建分布式B/S测试系统 Robot Framework + AutoIT 构建C/S测试自动化框架 Robot Framework + Appium 构建移动应用自动化测试框架 Trac是一个为软件开发项目需要而集成了Wiki和问题跟踪管理系统的应用平台,是一个开源软件应用。Trac以简单的方式建立了一个软件项目管理的Web应用,以帮助开发人员更好地写出高质量的软件;Trac应用力求不影响现有团队的开发过程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值