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 --unitphp 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 test
developmentのプルリクエスト(作成・追加コミット・再開)を実行トリガー化 




