3
0

【Laravel】PHPStanをGitHub上でDockerの中で実行する

Last updated at Posted at 2024-03-14

はじめに

こんにちは、プログラミングを始めて約3年のエンジニアのkeitaMaxです。

前回、PHPStanをGitHubActionsでGitHubにPull Requestを出した時に、テストできるようにしました。

前回の記事

ymlファイルでGitHubのテスト環境のPHPバージョンなどの記載をしたら、PHPバージョンアップの対応をした時に修正し忘れそうだ思ったので、

今回は、それをGitHub上でDockerを立ち上げて、PHPStanがDocker上で動くように修正したいと思います。

GitHubActionsのymlファイルの修正

phpstan.yml
name: LaraStan
on: [pull_request]

jobs:
  phpstan:
    runs-on: ubuntu-latest
    defaults:
      run:
        working-directory: ./src
    steps:
      - uses: actions/checkout@v2
        with:
          fetch-depth: 0
      - name: Setup PHP
        uses: shivammathur/setup-php@v2
        with:
          php-version: "8.2"
          tools: composer, cs2pr
          coverage: none

      - name: Composer install
        run: composer install

      - name: Larastan install
        run: composer require nunomaduro/larastan --dev

      - name: Run PHPStan
        run: vendor/bin/phpstan analyze

もとは上のようだったファイルを、以下のように修正しました。

phpunit.yml
name: phpunit

on: [pull_request]

jobs:
  build:
    runs-on: ubuntu-latest
    defaults:
      run:
        working-directory: ./src
    steps:
      - uses: actions/checkout@v2
      - name: docker-compose up
        run: |
          # docker-compose build
          docker-compose up -d
      - name: composer install
        run: |
          docker compose exec app composer install
      - name: Laravel Settings
        run: |
          docker-compose exec -T app cp .env.example .env
      - name: phpunit
        run: |
          docker compose exec app php artisan test

PHPの設定を色々やっていたものをDockerを立ち上げるように修正しました。

GitにPushしてGitHubで実行する

これをGitHubにPushすると以下のように実行され、全てにチェックがつきました。

スクリーンショット 2024-03-12 23.13.44.png

失敗させてみる

ちゃんと動いているかを確認するためにわざとLaraStanのテストを失敗させてみます。

public function count():int

これを以下のようにして、PHPStanが失敗するようにします。

public function count()

PHPStanのLevelがMAXなので、これでエラーになるはずです。

これでPushすると、以下のように失敗しているので、正しくテストが実行できていることが確認できました。

スクリーンショット 2024-03-12 23.20.39.png

おわりに

Dockerを使うと簡単にテストもできるし、DockerのPHPバージョンを変更すれば、開発環境とPHPバージョンとか諸々を合わせられるので便利だなと感じました。

この記事での質問や、間違っている、もっといい方法があるといったご意見などありましたらご指摘していただけると幸いです。

最後まで読んでいただきありがとうございました!

3
0
1

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
3
0