travis-ci のデフォルトのビルドサイクル
travis-ci のドキュメントには デフォルトのビルドサイクルは以下のように書かれています。(http://docs.travis-ci.com/user/build-configuration/#Build-Lifecycle)
- GitHub からプロジェクトのリポジトリを clone
- clone したディレクトリに移動
- 今回の commit をチェックアウトする
- before_install commands 実行
- install commands 実行
- before_script commands 実行
- test script commands 実行
- after_success or after_failure commands 実行
- 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