はじめに
こんにちは、プログラミングを始めて約3年のエンジニアのkeitaMaxです。
前回、PHPStanをGitHubActionsでGitHubにPull Requestを出した時に、テストできるようにしました。
前回の記事
ymlファイルでGitHubのテスト環境のPHPバージョンなどの記載をしたら、PHPバージョンアップの対応をした時に修正し忘れそうだ思ったので、
今回は、それをGitHub上でDockerを立ち上げて、PHPStanがDocker上で動くように修正したいと思います。
GitHubActionsの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
もとは上のようだったファイルを、以下のように修正しました。
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すると以下のように実行され、全てにチェックがつきました。
失敗させてみる
ちゃんと動いているかを確認するためにわざとLaraStanのテストを失敗させてみます。
public function count():int
これを以下のようにして、PHPStanが失敗するようにします。
public function count()
PHPStanのLevelがMAXなので、これでエラーになるはずです。
これでPushすると、以下のように失敗しているので、正しくテストが実行できていることが確認できました。
おわりに
Dockerを使うと簡単にテストもできるし、DockerのPHPバージョンを変更すれば、開発環境とPHPバージョンとか諸々を合わせられるので便利だなと感じました。
この記事での質問や、間違っている、もっといい方法があるといったご意見などありましたらご指摘していただけると幸いです。
最後まで読んでいただきありがとうございました!