GitHub ActionsでPHPStanを実行する
前記事に引き続きGitHub Actionsでなんかやろうシリーズ
今回はGitHubでdevelopmentへのプルリクエストをトリガーにPHPUnitが動作するように設定して実行
【重点】【注意】【お断り】【お断り】【注意】【重点】
これは『GitHub ActionsでPHPUnitが動けばよし』としている
なので『GitHub Actions上でPHPUnitが想定通りの動作をしてくれない』には別途対処が必要
【重点】【注意】【お断り】【お断り】【注意】【重点】
- リポジトリルートからディレクトリ掘ってphpunitの動作ファイル配置:
.github/workflows/phpunit.yml
- Dockerでコンテナ立ち上げて入ってプロジェクトルートに移動。
- composerでphpunitを追加
composer require --dev phpunit/phpunit ^10
(本当は11にしたいが、今回はcomposer.jsonの他の内容と干渉して通せないのでやむなく10) - さらに必要になるので
composer require --dev nunomaduro/collision ^7.0
- 追加したので
composer update
- これでunitテストに必要なphpファイルが作れるようになったのでコマンドで作成
- 必要なところは変えること
php artisan make:test HealthCheckTest --unit
php artisan make:test HealthCheckTest
- コマンドのレスポンスにどこに出たのかが書いてあるので自動作成されたファイルの内容を確認
必要に応じて編集する。 - 編集したら実行
php artisan test
これで上手く行ったらローカルでの実行成功ってこと - うまく行ったらGitHubにプッシュしてonになる条件を満たしてみる
- GitHubのActionsタブからメニューのPHPUnitを押して結果を見てみる
- 成功していたら万歳
- 失敗していたら原因探して対処
.github/workflows/phpunit.yml
name: PHPUnit on: pull_request: branches: - development types: - opened - synchronize - reopened jobs: test: runs-on: ubuntu-latest services: db: image: mysql/mysql-server:5.7 env: MYSQL_ROOT_PASSWORD: password MYSQL_DATABASE: database MYSQL_ROOT_HOST: '%' ports: - 127.0.0.1:3306:3306 steps: - name: Checkout uses: actions/checkout@v3 - name: Set up PHP uses: shivammathur/setup-php@v2 with: php-version: '8.2' extensions: mbstring, pdo, mysqlnd, mcrypt, memcached, gd, apcu, xml, bcmath, zip, xdebug, opcache tools: composer - name: Composer install run: composer install --no-progress --prefer-dist --working-dir=src - name: Run PHPUnit working-directory: src run: php artisan testdevelopmentのプルリクエスト(作成・追加コミット・再開)を実行トリガー化