一から勉強させてください( ̄ω ̄;)

最下級エンジニアが日々の学びをアウトプットしていくだけのブログです。

Travis CI導入メモ

Travis CIを導入した際の手順をメモがてら書きます。

設定ファイルを書く

Railsプロジェクト(DBはpostgreSQL)で使用したのでその前提で。

プロジェクトのリポジトリ.travis.ymlを追加して以下のように書きました。

language: ruby
rvm:
  - 2.1.0
bundler_args: --without development --deployment
cache: bundler
before_script:
  - cp config/database.travis.yml config/database.yml
  - bundle exec rake db:create
  - bundle exec rake db:migrate
script:
  - bundle exec rspec spec

languageをRubyに指定。

rvmのところは複数バージョン書いておくとバージョンごとに個別にテストしてくれるぽい。

bundler_argscacheはできるだけテスト速くしたいので設定。ドキュメントを参考に(丸パクリ)しました。

before_scriptはテスト実行前の処理。 まずpostgreSQL用の設定。(SQLiteとかなら多分必要ない)config/database.travis.ymlをつくってtravis用のDB設定を書きます。

こんな感じ。

test:
  adapter: postgresql
  database: md_note_test
  username: postgres

rake db:create, rake db:migrateしとけばDBの準備もOK。

あとはscriptのとこでテストの実行コードを書いておけばその通りテストしてくれます。

Travis CI側での設定

Travis CIに行ってGithub認証したらほぼ完了。profileに自分のリポジトリ一覧が表示されるので、Travisを使用したいリポジトリにONのチェックを入れるだけ。

あとは上で用意した.travis.ymlconfig/database.travis.ymlを該当するリポジトリにpushしておけば、その後git pushするたびにテスト実行してくれるようになります。

https://travis-ci.org/Githubのユーザー名/リポジトリ名にいけば経過みれます。(トップ画面でも見れるかも)

build passing的な画像をREADMEに貼る

https://travis-ci.org/Githubのユーザー名/リポジトリ名のちょうど右上に画像が表示されてます。

f:id:d_animal141:20140906204300p:plain

それをクリックしてMarkdownを選択。横のパスをREADME.mdにコピペしたら表示されます。

f:id:d_animal141:20140906204348p:plain

メモ

git commit --amendしてgit push -f origin masterってしたときにTravis側を確認したらgit checkoutの段階でfatal: reference is not a tree:みたいなエラーが出たことがありました。

もう一回push(forceではない)したら直ったので原因の深堀りできてないのですが、ここに似た状況が書かれていたので今後のためにメモしとく。

まとめ

個人でオープンに開発するときはTravisが便利!!プライベートリポジトリだと辛そう。(Travis CI価格表) 仕事ではCircle CI使ってるんですが、プライベートならこっちのほうが断然いいとおもいます。安いです。(Circle CI価格表

状況に応じて使い分けたい。

参考