Pull Request を出すまでの流れ。例題として RailsAdmin の v1.1.1 を挙げる (master だとそのうちサンプルとしているコードが変わるので) 。
まずはテストの実行まで
途中の手順4でテストが落ちるという出来レースの話があって、そこからが人によって少しお役立ち情報かもしれない。
1. ローカルに持ってくる
なにはなくとも手元になければ、
% ghq get https://github.com/sferik/rails_admin
もしくは、
% git clone https://github.com/sferik/rails_admin
を実行する。
ghq と gem-src を使ったりなどで既に手元にあれば git pull origin master なんかで最新のコードにする。
2. bundle install する
% bundle install
3. .travis を見る
テストを実行するにあたり .travis の before_script に書かれているものを確認する。
before_script: - cd spec/dummy_app - bundle exec rake rails_admin:prepare_ci_env db:create db:migrate - cd ../../
このように記されている場合はテストの事前準備として書かれているように実行する。
注意点として、CI ではテスト環境が使われるためここの bundle exec rake rails_admin:prepare_ci_env db:create db:migrate では、RAILS_ENV=test bundle exec rake rails_admin:prepare_ci_env db:create db:migrate と環境変数を指定すると良い。
4. bundle exec rake
あとはテストを実行してグリーンになることを確認する。
% bundle exec rake
そして、この例だと PaperTrail まわりのテストが落ちてグリーンにならなかったと思う。
Appraisals を使う
ここから後出しジャンケンっぽい延長。
RailsAdmin では Appraisals という Gem を使って複数の Rails のバージョンのテストができるようになっている。
Appraisals の詳細は公式ページやインターネットに任せてざっくりと書く。
延長1. Appraisals というファイルを見る
例えば rails-5.0 向けテストをするため、そのための `bundle install` をするとする。
見るべきポイントとしては、ディレクトリルートの Appraisals ファイルとなり、そこに書かれた appraise "rails-5.0" do の "rails-5.0" という値を使って以下のように bundle install を実行する。
延長2. appraisal を使った bundle install
appraisal を使って rails-5.0 向けの bundle install となる。
% appraisal rails-5.0 bundle install
延長3. appraisal を使ったテストの実行
テストも同じように appraisal を使った実行をする。
% appraisal rails-5.0 bundle exec rake
これでテストがグリーンになったと思う。 こういった感じで、変更に応じてローカルでテストが通ることを確認しつつ PR に進んで行くことになる。