Code Climate を Mac で動かす

avatar

Yuji Matsumoto / September 13 2019

(この記事は別のブログサイトに掲載していた記事を移植したものです)

Code Climate とは

https://codeclimate.com

  • コードの品質を測るためのサービス
  • OSS で使う分には無料
  • docker を使って動作環境を自分で作ることもできる

今参加しているプロジェクトでは CI で Code Climate の実行結果を見れるようにしているのですが、たまにプッシュする前に Code Climate の結果を見たいことがあり、手元で動かせるようにしてみました。

環境構築

環境構築とはいっても、Homebrew から導入してゴニョゴニョするだけで済みます。

Docker image を pull する

*Docker for Mac が導入されている前提

$ docker pull codeclimate/codeclimate

Homebrew から Code Climate を導入する

$ brew tap codeclimate/formulae
$ brew install codeclimate

global に Code Climate を実行できるようにする

brew install が完了した段階で、shell を叩けば Code Climate は動くようになるのですが、一々入力をするのも面倒くさいので、以下の内容で .sh ファイルを作成しておきます。

sudo docker run \
--interactive --tty --rm \
--env CODECLIMATE_CODE="$PWD" \
--volume "$PWD":/code \
--volume /var/run/docker.sock:/var/run/docker.sock \
--volume /tmp/cc:/tmp/cc \
--volume /code/node_modules \
codeclimate/codeclimate analyze -f html > output.html

codeclimate analyze コマンドは -f というオプションを受け取ることができます。コードの解析結果の出力形式を指定するためのオプションです。今回は html 形式で出力して、output.html というファイルに書き込むように設定しています。

作成した .sh ファイルを/usr/local/bin 以下に配置し、権限を弄れば準備完了です。

$ cd /usr/local/bin/ && sudo chmod 755 codeclimate

後は、Code Climate の設定ファイルのあるディレクトリで、codeclimate コマンドを叩けば、解析結果が 実行したディレクトリ/output.html に出力されます。

解析が中々始まらない場合

この issueを参考に--volume /code/node_modules \を docker 起動時のフラグに追加したところ、スムーズに解析を行ってくれるようになりました。

sudo docker run \
--interactive --tty --rm \
--env CODECLIMATE_CODE="$PWD" \
--volume "$PWD":/code \
--volume /var/run/docker.sock:/var/run/docker.sock \
--volume /tmp/cc:/tmp/cc \
--volume /code/node_modules \
codeclimate/codeclimate analyze -f html > output.html

参考