[Continuous Integration] Ruby プロジェクトに Travis CI + Code Climate を導入する
オレオレ gem プロジェクトに CI ツールを導入します。
概要の把握は、こちらを参考にさせて頂きました。
設定ファイル
こちらを参考に .travis.yml
を作成します。
この設定で期待する結果は、以下の3つです。
- Code Climate で Maintainability が表示される。
- Code Climate で Test Coverage が表示される。
- Travis で Rspec が Build(実行)される。
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
で呼び出します。
:
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