12
Travis CI
Calvin edited this page 2013-11-14 01:37:15 +08:00
This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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的背后