Skip to content

Travis CI

Calvin edited this page Nov 13, 2013 · 12 revisions

Overview

平时项目里用的是jenkins,但很难找到好用又免费的jenkins hosting服务,而travis-ci.org免费为github用户提供服务且非常易用,SpringSide的地址为 https://travis-ci.org/springside/springside4 。不过商业的项目就没这么幸运了,两个并发要129美刀/月,十个并发要489美刀,不过其实也不贵。

QuickStart

根据Quick Start Guide,只要放一个最简单的.travis.yml,就可以有基本的持续运行的单元测试,简单到不愿意相信。

language: java
script: mvn test

每次github上的提交都会触发travis,启动一个全新的虚拟机(java runtime已包含jdk和maven),git clone代码,在速度超快的私服下载所有的maven依赖包,先跑一次“mvn install -Dmaven.test.skip=true” 热身,最后执行配置文件定义的"script:mvn test",全部跑完大概才需要3分钟。如果出错,会收到邮件。

用货真价实的FireFox运行功能测试

SpringSide里的完整脚本如下:

language: java
script:
- mvn test
- mvn test -Pfunctional-test -Dselenium.driver=firefox
env: MAVEN_OPTS="-XX:MaxPermSize=128m"
addons:
  firefox: "22.0"
before_install:
  - "export DISPLAY=:99.0"
  - "sh -e /etc/init.d/xvfb start"
  • env 一句加大了跑showcase serer时的JVM PermSize。
  • addons 一句定义了虚拟机要安装Firefox,版本是22.0。(用wget下个Firefox再安装好像花掉了两分钟)
  • before_install 两句定义了GUI环境。travis里触发的生命周期是before_install, install, before_script, script,after_script。
  • script 兩句,分别执行单元测试 和 功能测试。
  • 一共也才7分钟不到,非常舒服。

更多服务

Travis还提供 MySQL, PostgreSQL, MongoDB, Redis, Riak, RabbitMQ, Memcached , Cassandra , Neo4J , ElasticSearch, SQLite3的服务以供功能测试时使用,好人到光芒万丈,都不好意思免费用它的这些功能了。 如果你一定要使用,可以看官方使用文档

Travis CI的背后