STERFIELD

2021/10/30

GitHub Actions を使って静的コード解析を行うのがとても便利

GitHub Actions を使って静的コード解析を行うのがとても便利
スターフィールドでは、ソースコードの開発管理に GitHub を使っています。
GitHubでは、ソースコードを管理するだけではなく、開発物の承認ですとかサーバーへのデプロイも実行できるのですが、その一連の流れを実施してくれる、GitHub Actions  があります。
GitHub Actions については、公式ドキュメント以外にも、ClassmethodさんのDevelopers.IOにて、詳しく解説をされているので、 そちらをご覧いただくとして、
この記事では、「GitHub Actions 初心者」としての感想などを書いてみたいと思います。

どういうことをしたいのか

PHP のソースコードを書いて、静的コード解析ツールを通して評価する Workflow を作成します。
静的コード解析ツールには、 PHPStan  を用います。

実験

Workflowの作成

PHPStanは、GitHub Packagesにコンテナが公開されているので、それを利用します。
また、作成するWorkflow の一部には、 Greg Bowler氏による PHP Actionsを利用させていただきました。
https://github.com/php-actions/phpstan
Workflowは、 .github/workflow/phpstan.yaml として保存しました。
対象とするPHPのコードは、PHPStanのトップページにあるコードです…。

PHPStan Config(neon)の作成

とても短いneonですが、これで十分な動作をします。
PHPStan には、0〜9までの Rule Level  がありますが、
最高レベルの level: 9を指定すると、
とのエラーが発生しました。Dockerイメージの中には、level:9 の neon ファイル用意されていないようです。
そのため、level: 8 を指定しました。

Workflowの実行

GitHub Actions の Workflow を通して、PHPStanを実行した結果です。
level:8 だと、
最低レベルの level: 0 だと、
level:8 の方が手厳しく指導されてますね!
そもそも、level:8 で、まともなコードと言えるでしょう。
静的コード解析は、最高レベルで実施するに限ります。

まとめ

コードの品質を保つには、静的コード解析ツールを実行する他にも、コードレビューを確保する必要がありますが、GitHub Actionsを使って、コードが更新されるたびに静的コード解析ツールが実行されると、品質の悪いコードが入り込む余地がありません。
お客さまが触れる製品サービスの品質をあげていく上でも、また、エンジニアの負担軽減のためにも、このようなGitHub Actionsを活用していきたいです。

Author Profile

著者近影

SHOTA.SAITOH.

好きなゲームは、PS5のStrayです。

SHARE

合わせて読みたい