CIでRailsのmasterブランチを使ってテストを実行する
Rails edgeでCIを動かしたい酔狂な人向けに記事を書いておく。
Rails edgeのGemfileを用意する
# gemfiles/rails_61.gemfile eval_gemfile File.expand_path('../Gemfile', __dir__) dependencies.delete_if { |d| d.name == 'rails' } gem 'rails', github: 'rails/rails'
Rails edge用のGemfileを使う
BUNDLE_GEMFILE
を指定することで、別ディレクトリにある Gemfile
を使用できる。
$ BUNDLE_GEMFILE=gemfiles/rails_61.gemfile bundle install
CircleCIで定期的に実行する
Gemfile
のときのキャッシュが効くように BUNDLE_PATH_RELATIVE_TO_CWD
をつけている。
jobs: rspec-edge: executor: rails environment: BUNDLE_GEMFILE: gemfiles/rails_61.gemfile BUNDLE_PATH_RELATIVE_TO_CWD: true steps: - checkout - run: cp Gemfile.lock gemfiles/rails_61.gemfile.lock # あとは bundle-install して、テストを実行すれば良い workflows: edge-rails: triggers: - schedule: cron: "0 0 * * 0" # At 00:00 on Sunday filters: branches: only: - master jobs: - rspec-edge: