脳汁portal

アメリカ在住(だった)新米エンジニアがその日学んだIT知識を書き綴るブログ

TravisCIの使い方(入門・導入編)

Travis CIとは何か

継続的インテグレーション - Wikipedia

  • 数あるCIツールの中でもTravisCIはGitとの連携を売りにしており、ソースをGitで管理している場合は非常に簡単にテストが行える
  • テストを行うタイミングは色々と設定できるが、branchにpushしたり、pull requestが送信された際に自動でテストを行ってくれる。
  • また、Git側もTravisCIに対応しており、TravisCIのコンソールを開かなくてもテストが成功したか失敗したか確認することが出来る。

f:id:portaltan:20150730100501p:plain

前提

TravisCIはGithubで管理されているリポジトリのCIツールなので、Githubのアカウントが作ってある必要がある

使い方

1. まずはTravis CIのサイト(https://travis-ci.org/)へ行き緑色のボタンでSing upする。

f:id:portaltan:20150730100627p:plain

2.次にGithubのアカウントの内容確認が出る。ここですぐにテストが設定されたりはしないので、基本的に一番下の「Authorize application」を選択する

f:id:portaltan:20150730101111p:plain

3.正常にGithubアカウントと連携されると、初期画面が表示される。

f:id:portaltan:20150730101312p:plain
最初に何をすれば書いてあるが、簡単に言うと

  • テストを行いたいリポジトリを選択
  • テストの設定ファイル(.travis.yml)を作ってリポジトリに配置しましょう
  • git pushして試して見ましょう

という感じです。

4. 最初の「Activate Github repository」を選択すると自分の管理下のリポジトリ一覧が表示されます。f:id:portaltan:20150730101759p:plain
5.テストを行いたいリポジトリ名の左にあるスライダーをクリックします。

f:id:portaltan:20150730101925p:plain

6. 次にテストに使用する設定ファイル(.travis.yml)をリポジトリのrootディレクトリに配置します。最小構成は以下である

.travis.yml

language: ruby
rvm:
  - 2.1.2
  • Travis CIは特に設定をしないと、デフォルトの動作としてbundle install(bundle install --jobs=3 --retry=3)とrakeを実行する。なので、GemfileとRakefileがあればこれで設定完了である。
7. GemfileとRakefileの設定

.travis.ymlにテスト内容を設定することも出来るが、今回は導入なので、GemfileとRakefileを用いる
Gemfile

source 'https://rubygems.org'

gem 'rake'
gem 'rspec'

Rakefile

task :default => [:rspec]
begin
  require 'rspec/core/rake_task'
  RSpec::Core::RakeTask.new(:spec) do |spec|
    spec.pattern = 'spec/*_spec.rb'
    spec.rspec_opts = ['-cfs']
  end
rescue LoadError => e
end
8. この状態でブランチにpushすると自動でテストが走ります。

結果はTravisCI上のWeb consoleから確認できます。
f:id:portaltan:20150730103230p:plain

9. Github側でもTravisCIに対応しているので、pull requestが送られるとGit側の画面でもテストの結果を見ることが出来る。

f:id:portaltan:20150730104045p:plain


これで簡単な導入は完了です。
次回は.travis.ymlを編集してTravis CI側でテスト内容を設定したいと思います。