Scrutinizer をトライアルしていますなう

これまで、CI をする際は Jenkins を利用していたのですが、Scrutinizer がよさそうだったのでトライアルしています。

f:id:kseta:20150419234920p:plain

Measure and Improve Code Quality continuously with Scrutinizer

今の会社は、新卒で入社して5年目なのですが、そもそも、入社当初は CI 環境が存在してなくて、いろいろ勉強して CI 環境をガーっと構築したのですが、全ての設定を基本的に一人でガーっと進めたので、Jenkins の設定なども自分しかできない状況になっています。これを解消するためには、Jenkins の使い方などを他のメンバーにも共有すればいいのですが、他のメンバーはそもそもそんなに CI に対して興味があんまりないので、そこを無理に強いるのもツライ状況。

外部サービスを使いたいと思っていたのですが、静的コード解析されるというのは NG ということをだいーぶ前の過去の上司に言われてて、諦めていました。が、去年変わった上司に「いいすかー?」ッて聞いたら「いいよー」ってあっさり返ってきて、満を持して導入できるようになりました。ナイス上司。

Circle CITravis CI も候補にあったのですが、Scrutinizer がいいらしいよって教えていただいて試してみることに。逆に Circle CI や Travis のほうがいいよ!ってことがあったらぜひ教えていただけると嬉しいです。・・・ほとんど CI のサービスを使ったことがないのです。

Scrutinizer は、Private のレポジトリを利用する場合は有料で、2週間のトライアルが可能でした。実際のコードでいくつか試したいこともあったので Private で試しています。今ちょうど1週間くらい経過したところです。でも実際にさわったのは、この3時間くらい・・・w

Scrutinizer で、できること

ここから、ちょっとした紹介です。

自動化されたコードレビューやデプロイなどができるようです。静的解析を行い、データがどのようにアプリケーションを通って行くかを追跡し、セキュリティやバグ、使用していないコードを検出してくれます。より詳細な機能はこちらから。

Measure and Improve Code Quality with Scrutinizer

はじめてのコードレビュー

テストで行ったのレビューから修正までの流れをご紹介。

プルリクエストを作成すると、レビュー結果をこんな感じで表示してくれます。この例の場合、プルリクエストによって、29件のイシューと2件のパッチが新規に作成されました。

f:id:kseta:20150419225236p:plain

はじめてのコードレビューで指摘されたことは、こんな感じのことでした。

イシューはこんな感じでコードとともに確認できます。みやすい。

f:id:kseta:20150419230036p:plain

で、そのイシューからポチっと GitHub の Issue を作成することができます。お手軽ですね。

f:id:kseta:20150419230305p:plain

で、修正プルリクエストを自分で作って、イシューを解決すると Good job とお褒めのお言葉をいただけます・・・!

f:id:kseta:20150419230552p:plain

また、パッチという機能があり、明らかな修正は修正済のプルリクエストを発行できます。たとえば、不要な空行などはパッチを作成してくれました。

こんな感じで、コードレビューから GitHub の Issue を作成するまではお手軽で、時には修正まで自動でしてくれるのはいいですね!

もうちょっといろいろなことを試してみます

いま、ドキュメントを翻訳しながらいろいろ試しています。テスト実行やデプロイ、実行環境のビルドもできるので、今の CI 環境でやっていることはほとんどできそうな予感・・・。けっこうデザインも好みで、触ったかぎりだとかなり好印象ですね!他のサービスも触ってみて比較しつつ導入を検討してみます。みなさんも興味あったらぜひ。

もう Jenkins のメンテとかあんまりやりたくないよ!!

では!

参考