Travis-CI を使ってみた

Travis-CI というサービスがあります。
継続的インテグレーションってやつです。
よくわかりません。
多分 Jenkins みたいなやつです。

とりあえず github に push したら指定したスクリプトを走らせてくれて、結果を通知してくれるサービスだと思っておきます。
で、これを使います。

環境

今回開発で使っている環境は以下の通り

  • Python2.7
    • Tornado 2.4
    • SQLAlchemy
    • zope.pageteplate
    • Pygments
  • MySQL

とかとか。
まあ普通ですね。

で、こいつのテストを Travis-CI で走らせます。

Travis-CI にログイン

Travis-CI のサイトに行って githubOpenID 認証をしたら終了なので特に書くことはありません。

で、 CI したいリポジトリの設定をポチっと切り替えるだけです。

.travis.yml を書く

リポジトリ直下に .travis.yml というファイルを作ります。
今回は以下の通り。

language: python
python:
  - "2.7"

before_script:
        - wget http://svn.zope.org/*checkout*/zc.buildout/trunk/bootstrap/bootstrap.py
        - python bootstrap.py -d
        - bin/buildout
script: ./test.sh

セットアップは全部 buildout 任せなのでまあこんなもんでしょうか。

Python の細かい設定の話は ドキュメント 見てください。
PyPy も使えるらしいっすよ素晴らしい!

MySQL は root@localhost でパスワード無しアクセスできるらしいです。
ドキュメント に書いてありました。
皆さん読みましょう。

この python: のところを書き換えるとバージョンも色々試せるみたいですよ。
複数バージョンでのテストも楽チン。

使ってみて

とりあえず楽で便利な Travis-CI なのですが、ちょっと気になるところも。

ビルドが再実行できない

PyPI が落ちていて buildout でコケてるとかそんなときでも再実行するという選択は取れない模様。
それが若干残念。

成果物とか作れない

Jenkins だとビルドした結果の成果物として色々とっておけたりするけれど、 Travis-CI だとそれもない。
なので Coverage を HTML 出力してもどうしようもない。

まとめ

若干残念とはいえ便利なので使いましょう。

あと、 BuildHive も気になってる。