個人開発でもCIがしたい
2016年6月にSonarQubeでPHPのコードを静的解析するという記事を書きました。
その中で、「静的解析の結果がGitHub上にコメントされることが修正には大事」だということも書きました。
2019年現在(というよりもう結構前から)、SonarQubeのPull Requestへのコメント機能は有償の機能の一部になっています。
個人開発で同じようなことができないかなーということで表題のような構成を試してみました。
なお、SonarQubeを完全に代替できるわけではありません。SonarQubeは過去からの推移がみられるダッシュボードがあったり、GUIで細かくルールが決められて便利。
やったこと
このような感じで、PRを出したら、変更点に対して静的解析の結果をコメントしてもらいたい。
登場人物
- PHPStan:静的解析ツール。
- Larastan: PHPStanのLaravel向けラッパー。
- reviewdog: Gitのdiffと解析ツールの結果をまとめてGitHubに通知してくれる。今回はPHPStanの解析結果をGitHubにコメントしてもらうために使う。
- CircleCI: YAMLで設定を書くとコンテナ上で命令を(例えばテストを回すとか)実行してくれるプラットフォーム。今回はGitHubのリポジトリを引っ張ってきてPHPStanを実行し、結果をreviewdogに渡すために使う。
- Laravel: PHPのWAF。テスト対象のアプリケーションの例。
やりかた
https://scrapbox.io/kadoyau/Larastan_+_reviewdog_+_CircleCI
自分の知っていることはすべてScrapboxに書き出しており、説明が楽なためにここからはScrapboxでみてください。Qiitaさん、ごめんなさい(ぺこり)