Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
3
Help us understand the problem. What is going on with this article?
@kitsunecat

CircleCI でRuboCopがError: Unsupported Ruby versionとかおっしゃる

More than 1 year has passed since last update.

CircleCIでRuboCopが動かん

CircleCIでRuboCopを動かそうとすると下記エラーが出力されて動いてくれませんでした。
ローカルでRubocop走らせたら正常にチェックしてくれました。

#!/bin/bash -eo pipefail
bundle exec rubocop
Error: Unsupported Ruby version 2.1 found in `TargetRubyVersion` parameter (in vendor/bundle/ruby/2.5.0/gems/rainbow-3.0.0/.rubocop.yml). 2.1-compatible analysis was dropped after version 0.58.
Supported versions: 2.2, 2.3, 2.4, 2.5, 2.6
Exited with code 2

0.58以降のRuboCopはRubyのバージョン2.2, 2.3, 2.4, 2.5, 2.6しか対応してませんよ、ということらしいです。

バージョンちゃんと指定してんじゃん

とはいえ、CircleCIのコンフィグでちゃんとバージョンを2.5.1に設定しとるんですよ。

circleci/config.yml
version: 2
jobs:
  build:
    docker:
      # specify the version you desire here
       - image: circleci/ruby:2.5.1-node-browsers  # <-ほら

こうやったらええよ

結果としてRuboCopのコンフィグを編集することで解決できました。

rubocop.yml
AllCops:
  TargetRubyVersion: 2.5.1
  Exclude:
    - 'vendor/**/*'

なんでそうなるの

CircleCIの仕様上、gemたちはvendor/bundle配下にインストールされるそうです。
で、その中にRuboCopがつかっているrainbowとかいうGEMがあります。
rainbowは使うRubyのバージョンを独自で定義しているみたいで、そのバージョンがRubocopの対象外
ということみたいです。確かにエラーメッセージにもin vendor/bundle/ruby/2.5.0/gems/rainbow-3.0.0/.rubocop.ymlて書いてありますしね。
だから、と記載して、RubocopのTargetRubyVersion:でRubyのバージョンを指定し、- 'vendor/**/*'でvendorディレクトリ配下のチェックをスキップするようにしたら解決したのですね。めんどくさいですね。

しかしそれならrainbowがローカルでも悪さをしてRubocop失敗しないのかな。。という不思議。

3
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
3
Help us understand the problem. What is going on with this article?