Scrutinizer をトライアルしていますなう
これまで、CI をする際は Jenkins を利用していたのですが、Scrutinizer がよさそうだったのでトライアルしています。
Measure and Improve Code Quality continuously with Scrutinizer
今の会社は、新卒で入社して5年目なのですが、そもそも、入社当初は CI 環境が存在してなくて、いろいろ勉強して CI 環境をガーっと構築したのですが、全ての設定を基本的に一人でガーっと進めたので、Jenkins の設定なども自分しかできない状況になっています。これを解消するためには、Jenkins の使い方などを他のメンバーにも共有すればいいのですが、他のメンバーはそもそもそんなに CI に対して興味があんまりないので、そこを無理に強いるのもツライ状況。
外部サービスを使いたいと思っていたのですが、静的コード解析されるというのは NG ということをだいーぶ前の過去の上司に言われてて、諦めていました。が、去年変わった上司に「いいすかー?」ッて聞いたら「いいよー」ってあっさり返ってきて、満を持して導入できるようになりました。ナイス上司。
Circle CI や Travis CI も候補にあったのですが、Scrutinizer がいいらしいよって教えていただいて試してみることに。逆に Circle CI や Travis のほうがいいよ!ってことがあったらぜひ教えていただけると嬉しいです。・・・ほとんど CI のサービスを使ったことがないのです。
Scrutinizer は、Private のレポジトリを利用する場合は有料で、2週間のトライアルが可能でした。実際のコードでいくつか試したいこともあったので Private で試しています。今ちょうど1週間くらい経過したところです。でも実際にさわったのは、この3時間くらい・・・w
Scrutinizer で、できること
ここから、ちょっとした紹介です。
自動化されたコードレビューやデプロイなどができるようです。静的解析を行い、データがどのようにアプリケーションを通って行くかを追跡し、セキュリティやバグ、使用していないコードを検出してくれます。より詳細な機能はこちらから。
Measure and Improve Code Quality with Scrutinizer
はじめてのコードレビュー
テストで行ったのレビューから修正までの流れをご紹介。
プルリクエストを作成すると、レビュー結果をこんな感じで表示してくれます。この例の場合、プルリクエストによって、29件のイシューと2件のパッチが新規に作成されました。
はじめてのコードレビューで指摘されたことは、こんな感じのことでした。
- composer.lock に書いているバージョンの symfony/symfony は こういう問題があるよ
- PSR1 に準拠していないコードがあるよ(テストファイルに名前空間を指定してなくてそれが多かった)
- DRY じゃないコードがあるよ
イシューはこんな感じでコードとともに確認できます。みやすい。
で、そのイシューからポチっと GitHub の Issue を作成することができます。お手軽ですね。
で、修正プルリクエストを自分で作って、イシューを解決すると Good job とお褒めのお言葉をいただけます・・・!
また、パッチという機能があり、明らかな修正は修正済のプルリクエストを発行できます。たとえば、不要な空行などはパッチを作成してくれました。
こんな感じで、コードレビューから GitHub の Issue を作成するまではお手軽で、時には修正まで自動でしてくれるのはいいですね!
もうちょっといろいろなことを試してみます
いま、ドキュメントを翻訳しながらいろいろ試しています。テスト実行やデプロイ、実行環境のビルドもできるので、今の CI 環境でやっていることはほとんどできそうな予感・・・。けっこうデザインも好みで、触ったかぎりだとかなり好印象ですね!他のサービスも触ってみて比較しつつ導入を検討してみます。みなさんも興味あったらぜひ。
もう Jenkins のメンテとかあんまりやりたくないよ!!
では!