Android 进阶之自动化构建工具Travis CI
持续集成对于大多数的工程师应该是比较熟悉的一个概念,大部分的公司都有集成这一说法,如果不知道可以看看百度百科的定义:
持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽快地发现集成错误。许多团队发现这个过程可以大大减少集成的问题,让团队能够更快的开发内聚的软件。
说白了就是你提交代码后会手动或者自动触发软件编译,并在编译出对应版本软件后对其进行自动化测试和对外发布。
目前有很多自动化集成构建工具,可能大家最熟悉的就是jinkins了,但是随着Github的兴起,更多的人更偏向于借助一个已经搭建好的自动化构建服务器,而不是自己去搭建。如果你还在为选择GitHub集成工具而苦恼,那么可以先看下如下的这篇文章:
程序员必读:七款出色的GitHub功能集成工具
我个人选择的是Travis CI,也没啥原因就是感觉合胃口。这篇文章将会对Travis CI的使用进行一个介绍:
在开始介绍之前先贴出一篇Travis CI CEO对整个的见解:
The Smallest Distributed System
至于为啥要使用Travis CI,就我个人而言就两点:
- 满足我日常需求
- 易用
如果你需要更为官方的理由来说服你,那么就看下下面的文章吧,其实没多大必要,每个软件都会有受众,并且都有人说好,有人说坏,简单了解下就可以了:
5 Great Reasons to Use Travis-CI
- 首先登入:Travis-CI 官网
点击右上角的sign in with github按钮,会进入github的登入界面:
在要触发编译的项目上打开开关:
- 先在项目根目录创建.travis.yml文件,在.travis.yml文件中配置Travis-CI:
目前Travis已经支持如下编程语言的编译了:
但是这里我们只介绍用于Android项目中的.travis.yml的编写,要学习.travis.yml的编写,最高效的方法就是查看别人开源库中怎么配置,为什么要这么配置,每项配置的含义:
下面是我自己使用的比较完整的一个配置文件,每个项目根据自己的需求来对这些开关进行配置。最简单的.travis.yml 一般只需要包含language,jdk,android,components,before_script,script 即可,配置越多编译完成地越慢。
# 表示当前的项目为Android项目,Travis CI 看到这个配置后将会提供 JVM 语言所需要的编译工具比如JDKs, Ant, Gradle, Maven等. |
- Travis-CI 生命周期
下面是Travis-CI的生命周期,我们可以对这些生命周期节点进行配置如上面所示:
before_install |