Edited at

Rails アプリケーションに Travis CI を設定する


概要

Rails のアプリケーションを Travis CI でテストしてみたかったのでやってみました。

Slack への通知方法もまとめました。

今回は Rails 標準のテスティングフレームワークを使ったものが対象になります。


準備すること


  • Rails アプリ

  • GitHub のアカウント

※ Slackへの通知を行いたい場合は Slack アカウントを用意して下さい


Travis CI の設定手順


  1. Github アカウントを使い Travis CI にログインする

  2. 対象のリポジトリを選択する

  3. リポジトリのルートディレクトリに以下のファイルを作成する


.travis.yml

language: ruby

rvm: <ruby-version>
services: postgresql
bundler_args: "--without development --deployment -j4"
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 rake test

db/schema.rb が存在する場合は下記のように設定することも可能です。


.travis.yml

before_script:

- cp config/database.travis.yml config/database.yml
- bundle exec rake db:setup

また config ディレクトリに以下のファイルを作成


config/database.travis.yml

test:

adapter: postgresql
database: travis_ci_test
username: postgres

変更を GitHub に push すると CI が動きます。


Slackへの通知手順

この設定を行うと、 Slack のチャンネルに CI の結果を通知できます。


  1. Travis CI のコマンドラインツールをインストール

$ gem install travis


  1. Slack を開き左上のチーム名をクリックして Customize slack を選択

  2. 左上の Menu から Configure Apps を選択

  3. Travis CI を追加し Add Configuration を選択

  4. 任意のチャンネルを設定し、 token を控える

  5. リポジトリのルートディレクトリで以下のコマンドを実行する

$ travis encrypt "<account-name>:<token>" --add notifications.slack

push して Slack に通知されるか確認してください。