travis-ci のデフォルトのビルドサイクル

travis-ci のドキュメントには デフォルトのビルドサイクルは以下のように書かれています。(http://docs.travis-ci.com/user/build-configuration/#Build-Lifecycle)

  1. GitHub からプロジェクトのリポジトリを clone
  2. clone したディレクトリに移動
  3. 今回の commit をチェックアウトする
  4. before_install commands 実行
  5. install commands 実行
  6. before_script commands 実行
  7. test script commands 実行
  8. after_success or after_failure commands 実行
  9. after_script commands 実行

今回は、ほとんど初期状態のプロジェクト (https://github.com/kkabetani/travis_training) で、 travis を試したログを追ってみます。

.travis.yml ファイルのみプロジェクトにあって、hello.rb をコミットした時に動いた travis のログです。

Using worker: worker-linux-6-2.bb.travis-ci.org:travis-linux-15

$ git clone --depth=50 --branch=master git://github.com/kkabetani/travis_training.git kkabetani/travis_training
$ cd kkabetani/travis_training
$ git checkout -qf 0315be3ff38bfae1bfefee805f0fc50eb8db3e1c
$ rvm use 2.0.0 --install --binary --fuzzy
Using /home/travis/.rvm/gems/ruby-2.0.0-p353
$ ruby --version
ruby 2.0.0p353 (2013-11-22 revision 43784) [x86_64-linux]
$ rvm --version
rvm 1.25.14 (version) by Wayne E. Seguin <wayneeseguin@gmail.com>, Michal Papis <mpapis@gmail.com> [https://rvm.io/]
$ gem --version
2.2.2
$ bundle --version
Bundler version 1.5.3
$ rake
rake aborted!
No Rakefile found (looking for: rakefile, Rakefile, rakefile.rb, Rakefile.rb)
/home/travis/.rvm/gems/ruby-2.0.0-p353/bin/ruby_executable_hooks:15:in `eval'
/home/travis/.rvm/gems/ruby-2.0.0-p353/bin/ruby_executable_hooks:15:in `<main>'
(See full trace by running task with --trace)
The command "rake" exited with 1.
Done. Your build exited with 1.

このログを1つずつ追ってみたいと思います。

depth=50 オプションを付けることで取得するリビジョン数を 50 に指定する

$ git clone --depth=50 --branch=master git://github.com/kkabetani/travis_training.git kkabetani/travis_training
  • clone したディレクトリに移動
$ cd kkabetani/travis_training
  • 今回の commit をチェックアウトする
$ git checkout -qf 0315be3ff38bfae1bfefee805f0fc50eb8db3e1c
  • バージョン確認
$ rvm use 2.0.0 --install --binary --fuzzy
Using /home/travis/.rvm/gems/ruby-2.0.0-p353
$ ruby --version
ruby 2.0.0p353 (2013-11-22 revision 43784) [x86_64-linux]
$ rvm --version
rvm 1.25.14 (version) by Wayne E. Seguin <wayneeseguin@gmail.com>, Michal Papis <mpapis@gmail.com> [https://rvm.io/]
$ gem --version
2.2.2
$ bundle --version
Bundler version 1.5.3
  • Rake 実行
$ rake
rake aborted!
No Rakefile found (looking for: rakefile, Rakefile, rakefile.rb, Rakefile.rb)
/home/travis/.rvm/gems/ruby-2.0.0-p353/bin/ruby_executable_hooks:15:in `eval'
/home/travis/.rvm/gems/ruby-2.0.0-p353/bin/ruby_executable_hooks:15:in `<main>'
(See full trace by running task with --trace)
The command "rake" exited with 1.
Done. Your build exited with 1.

before_install とか after_sctipt とかは .travis.yml に指定した場合に実行される。

今回の場合は何も記述していないので実行されていない。

また、runtime に Ruby を指定している場合、 テストを実行するためにデフォルトで rake を実行する。

なので Gemfile に rake を追加しないといけないみたいですね。

参考 http://docs.travis-ci.com/user/languages/ruby/#Default-Test-Script