1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

larastan + gitlab Ci ではじめるCi入門

Posted at

概要

Larabelで開発の際に静的解析をしたかったのでlarastanを導入することになりました。
ただこの系統の資料がgitlabではあんまりなかったので調べながら進めた内容を少しでも対応する人の手助けになったらと思い今回の記事を書きました。

larastan

導入

筆者の環境は以下のような感じ

Laravel Framework 8.83.19
PHP 8.0.23 (cli)
larastan 1.X

まずはlarastanの導入をします。
基本は、公式を見てもらえば大丈夫なんですがざっくりと説明しておきます。

まずはLaravelとPHPのバージョンによって導入するlarastanのバージョンが違うので気をつけてください。

  • PHP 8.0+
  • Laravel 9.0+
    ならばlarastanの2.X

ただし今回筆者はlaravelのバージョンが足りないためlarastanの1.Xをインストールします。

composer require nunomaduro/larastan:^1.0 --dev

インストール後は、アプリのルートディレクトリでphpstan.neonのファイルを作成します。
設定は、様々ありますがここでは最低限の内容のみ記載します。

includes:
    - ./vendor/nunomaduro/larastan/extension.neon

parameters:
    paths:
        - app

    level: 5

では各内容をします。
includesではlarastanで使用する設定を他のファイルから取得できるようになっています。
今回記載しているのは、基本の設定っぽいので脳死で入れています。

parametersでは各項目に対して設定します。
基本は、ここから下の内容をどんどん設定をいじる形ですね。

pathsではソースコードを解析する場所を指定します。
今回であればapp配下のソースコードを解析するように指示します。

levelでは解析するルールのレベルを変えることができます。
0~9まであるみたいですが9まで進めることは、筆者では難しかったです…。
また詳細は、長くなってしまうので割愛します。

その他の設定は、こちらからどうぞ

実行

ここまで設定ができればあとは、実行するだけです。

./vendor/bin/phpstan analyse -c phpstan.neon

これで解析OKですがよくここで起こるのは、メモリが足りないってエラーです。
なので筆者でも下記のようにオプションを追加して実行しています。

./vendor/bin/phpstan analyse -c phpstan.neon --memory-limit=1G

これによりメモリが足りないエラーがなくなるのでつけることをおすすめします。

gitlab

導入

CIの説明やgitlabでのCIのやり方は、ここでの説明ではないと思うので割愛します。
実際に記載したコードとしては以下の通りです。

test:
  stage: test
  script:
    - composer install
    - ./vendor/bin/phpstan analyse -c phpstan.neon --memory-limit 1G --error-format table

これで実際に実行されてテストの内容を把握することができます。

まとめ

正直導入自体は、そこまで問題ないと思います。
ただし自分自身としては、reviewdogを導入してコメントできるまでは落とし込みたかったんですがよくわからなかったんですよね…。
実際gitlabでの導入が公式参考にしてましたが他の例が少なすぎて断念しました…。
ただし今度は、その参考例にもなりたいので再チャレンジします。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?