[Continuous Integration] Ruby プロジェクトに Travis CI + Code Climate を導入する

オレオレ gem プロジェクトに CI ツールを導入します。

概要の把握は、こちらを参考にさせて頂きました。

設定ファイル

こちらを参考に .travis.yml を作成します。

この設定で期待する結果は、以下の3つです。

  • Code Climate で Maintainability が表示される。
  • Code Climate で Test Coverage が表示される。
  • Travis で Rspec が Build(実行)される。
.travis.yml
env:
  global:
    - CC_TEST_REPORTER_ID=****
sudo: false
language: ruby
os: osx
cache: bundler
rvm:
  - 2.3.3
  - 2.4
before_install:
  - gem install bundler -v 1.16.1
before_script:
  - curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-darwin-amd64 > ./cc-test-reporter
  - chmod +x ./cc-test-reporter
  - ./cc-test-reporter before-build
script:
  - bundle exec rspec
after_script:
  - ./cc-test-reporter after-build --exit-code $TRAVIS_TEST_RESULT

つまずきポイント

  • 前述の通り、cc-test-reporter の導入方法が変わっていました。
  • Test Coverage の表示には、そもそも simplecov gem が必要でした。

bundle install した後に、**_helper.rb で呼び出します。

spec/spec_helper.rb
    :
require 'simplecov'
SimpleCov.start
    :
  • .codeclimate.yml は不要でした。

RuboCop などを .codeclimate.yml を作成して設定すると、codeclimate.com の設定を上書きしてしまいました。

You have a YML config file which is overriding these settings.
This repository uses a committed .codeclimate.yml to configure analysis. Settings on this page will not be applied unless you remove the file. See our documentation for how to edit your config file.

  • Could not find * in any of the sources (Bundler::GemNotFound) というエラーが表示される。
    method materialize で発生している。

うーん、保留。

補遺

Slack