GitLab で「Your Ruby version is 2.5.3, but your Gemfile specified 2.5.1」と怒られた時の対処
どうも、たくチャレ(@takuchalle)です。
以前 Rails チュートリアルのアプリをGitLab
上で自動ビルドを行うように設定しました。
今は違うアプリケーションを作っていて、こちらでもGitLab
上で自動ビルドを行うようにしています。
怒られた
セットアップ時にYour Ruby version is 2.5.3, but your Gemfile specified 2.5.1
というエラーで失敗してしまいました。
実行しているRuby
のバージョンとGemfile
に記載されているバージョンが一致しないというエラーです。Rails チュートリアルの時は特に意識しなかったけど偶然一致してたんですかね…(要確認)
解決方法
開発しているマシンのRuby
のバージョンをアップデートしてGemsfile
を更新すればいいんでしょうけど、今回はGitLab
側を修正しました。
エラーが起きた時に登録していた.gitlab-ci.yml
は次のようになっていました。
stages:
- test
before_script:
- apt-get update -qy
- apt-get install -y nodejs
- bundle install
Test:
stage: test
script:
- bundle exec rails db:migrate RAILS_ENV=test
- bundle exec rails test
GitLab
で何も指定しない場合のRuby
のバージョンは2.5.3
になるみたいです(2018/11/14現在)。なので、明示的にバージョンを指定してあげれば問題なく動かすことができました。
image: ruby:2.5.1
stages:
- test
before_script:
- apt-get update -qy
- apt-get install -y nodejs
- bundle install
Test:
stage: test
script:
- bundle exec rails db:migrate RAILS_ENV=test
- bundle exec rails test
まとめ
エラーは簡単に解消することはできました。プロジェクトを立ち上げた最初に CI のセットアップしておくとトラブルが軽微で済むので早めにやっておくのがオススメです。
ただ、自動テストを行う度にbundle install
しているので結構時間がかかります。インストール済みのイメージを作成して使うようにすればもっと早くなると思うので、近々やってみたいと思います。
Read other posts