【メモ】ローカルの Windows で GitHub Actions をテストする

GitHub
イチから自分で設定して使ったことがなかったので試行錯誤中です。とりあえずローカルで試せるように






手順

  1. 管理者権限で act をインストールする
  2. ワークフローを記述する
  3. プロジェクトのディレクトリで act を実行する


1. 管理者権限で act をインストールする

Chocolatey が入っている環境なら以下のコマンドを打つだけでインストール出来る、、のですが、


choco install act-cli


普通にインストールしようとすると権限がないと怒られます。


act-cli not installed. An error occurred during installation:
パス 'C:\ProgramData\chocolatey\lib\act-cli\tools' へのアクセスが拒否されました。


なので、まず管理者権限でシェルを立ち上げてからインストールする必要があります。


powershell start-process cmd -verb runas

choco install act-cli



2. ワークフローを記述する

環境に合わせて適当な枠フローを記述してください。
とりあえず、GitHubが用意してくれたものを流用してみました。



3. プロジェクトのディレクトリで act を実行する

act -P ubuntu-latest=nektos/act-environments-ubuntu:18.04


こんな感じでテストを最後まで実行出来ました。よかった。


[Laravel/laravel-tests] ⭐ Run Main Execute tests (Unit and Feature tests) via PHPUnit
[Laravel/laravel-tests]   🐳  docker exec cmd=[bash --noprofile --norc -e -o pipefail /var/run/act/workflow/7] user= workdir=
| PHPUnit 8.5.34 by Sebastian Bergmann and contributors.
|
| ...............................................................  63 / 101 ( 62%)
| ......................................                          101 / 101 (100%)
|
| Time: 10.8 seconds, Memory: 44.00 MB
|
| OK (101 tests, 293 assertions)
[Laravel/laravel-tests]   ✅  Success - Main Execute tests (Unit and Feature tests) via PHPUnit
[Laravel/laravel-tests]   🐳  docker exec cmd=[node /var/run/act/workflow/hashfiles/index.js] user= workdir=
[Laravel/laravel-tests] ⭐ Run Post cache vendor
[Laravel/laravel-tests]   🐳  docker exec cmd=[node /var/run/act/actions/actions-cache@v1/dist/save/index.js] user= workdir=
[Laravel/laravel-tests]   ✅  Success - Post cache vendor
[Laravel/laravel-tests] Cleaning up container for job laravel-tests
[Laravel/laravel-tests] Cleaning up services for job laravel-tests
[Laravel/laravel-tests] Cleaning up network for job laravel-tests, and network name is: act-Laravel-laravel-tests-27ec562d6e66db412bc8aad63fdf6f03610c91a997d85daab719dc73f6da8134-laravel-tests-network
[Laravel/laravel-tests] 🏁  Job succeeded



参考

GitHub Actionsを利用してLaravelのテストを自動化してみた #Laravel – Qiita
GitHub ActionsでLaravelのテストをするのにMySQLを利用する #Laravel – Qiita


参考にさせて頂きました。ありがとうございます。