何番煎じか分からないけど自分用メモ
tl;dr;
.travis.yml
に下記のようなものを書くだけ
script: - RUBYOPT=$RSPEC_RUBYOPT bundle exec rspec matrix: include: - rvm: 2.6 env: RSPEC_RUBYOPT="--jit" - rvm: ruby-head env: RSPEC_RUBYOPT="--jit"
実行結果
https://travis-ci.org/sue445/rubicure/builds/473290010
ビルドスクリプト内で RUBYOPT="--jit" bundle exec rspec
とかしてもいいんですが、それだとビルドがコケた時にJIT起因の問題なのかそうじゃないのかが分かりづらくなるのでこっちを推奨です。
あと、
rvm: - 2.6 - ruby-head
を書いていた場合に、MJIT無しのビルドとMJIT有りのビルドが両方実行されて、MJITの有無でどれくらいビルドの時間が変わっているか比較しやすいというメリットもあります。
2019/6/19 追記
6/18くらいのCIからRuby 2.6系にも関わらず invalid option --jit
というエラーが起きるようになりました
$ export RUBYOPT="--jit" $ rvm use 2.6 --install --binary --fuzzy ruby: invalid option --jit (-h will show valid options) (RuntimeError)
https://travis-ci.org/sue445/omniauth-chatwork/jobs/547082488
いやいやそんなことないだろーと思ってたら、rspecの実行よりも前にエラーが起きているのでどうやらビルドの初期化のタイミングでTravisの中のRubyスクリプトが実行されていて、そいつがRuby 2.6未満なのが原因のようでした。
.travis.yml
で RUBYOPT
を上書きしないようにしたら --jit
でコケないようになりました