Travis CI,是一个专门为开源项目打造的持续集成环境。如果你有一个放在Github上的开源项目,Travis CI是一个开源完美的CI选择。在Travis CI中
可以直接用Github账号登陆,然后配置自己项目的持续集成。下面说说用Travis CI实习我自己的开源Demo Java Web项目CI的配置。
实现Java Web项目的持续集成是非常简单的,分成2个部分:
第一部分:travis ci中项目配置
在Travis CI中登录Github帐号,选择自己需要持续集成的项目,点击项目的按钮直接开启集成并授权Travis CI访问你的仓库即可,之后默认每次的push都会触发集成。
第二部分:github中项目配置
1. 我们要在自己项目的根目录下添加一个文件.travis.yml。
2. 下面是我的项目中.travis.yml的具体配置
language: java jdk: # - oraclejdk7 # - openjdk7 - openjdk6 before_install: # - mvn install -Dmaven.javadoc.skip=true - "echo skipped" install: - "echo skipped" script: # - "echo skipped" - mvn install -Dmaven.javadoc.skip=true # - mvn deploy notifications: email: recipients: - ******@***.com #on_success: [always|never|change] default: change #on_failure: [always|never|change] default: always
这个文件应该很好理解:
a. 首先,我们告诉Travis CI,我们的语言是什么。这样,它会根据你的语言为你选择构建工具。对于Java,Travis CI会自动匹配构建工具是否是maven(通过根目录是否有pom.xml来匹配)。
b. 接下里的JDK是要告诉Travis CI,我要在哪些环境下测试。,当我们提交代码时,Travis CI会在不同的JDK环境运行我们的测试,以此保证项目的版本兼容。
c. 再接着是关于生命周期各个阶段需要执行的命令,先执行关于安装依赖的 before_install、install,再执行关于具体构建的 before_script、script、after_success or after_failure、after_script。在Travis
CI中对于maven项目构建先在instal阶段执行mvn install -DskipTests=true,然后在script阶段执行mvn test,这些命令会尝试3次,因为我的web项目由于实现了intergation测试,直接执行mvn install -DskipTests=true会出现先测试集成测试然后在script阶段测试unit测试,所以我对要执行的脚本做了些修改,直接在script阶段执行所有测试。
d. 最后配置通知,告诉用户CI成功或者失败,可以支持email和irc等等。
3. 在http://lint.travis-ci.org中确保.travis.yml中没有语法错误。
4. 修改系统中关于数据库的用户名密码配置,Travis CI支持各种数据库,MySQL、PostgreSQL、MongoDB等等。Travis CI中MySQL数据库默认用户名是root或者travis,密码为空。具体数据库更多细节可以参考:数据库支持
5. 大功告成,我的开源项目也有了自己的CI。
更多细节可以参考Travis CI文档。
Note:
Travis CI项目页面上,右上角有个一个状态图标。点击它,可以看到Travis CI提供的项目状态图链接,选择Markdown,粘帖到自己的Github项目的README文件里中。