Laravel用のGithubActionsがいきなり落ちるようになった。[ Process completed with exit code 2. ]

# 結論

PHPのデフォルトのバージョンが勝手に変わっていた。
PHP7.4使っていたが8.0になっていた。

# 何が起きたか
つい先日まで正常に動いていた`github actions`が落ちるようになった。

`Process completed with exit code 2.`がでて落ちてる。

下記が実行してるaction。

落ちてるのは`Install Dependencies`の箇所
composerから依存関係インストールしてるだけ。


```yml:github-actions
name: Laravel

on:
  push:
    branches: [master, develop]
  pull_request:
    branches: [master, develop]

jobs:
  laravel-tests:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - name: Copy .env
        run: php -r "file_exists('.env') || copy('.env.example', '.env');"
      - name: Install Dependencies
        run: composer install -q --no-ansi --no-interaction --no-scripts --no-suggest --no-progress --prefer-dist
      - name: Generate key
        run: php artisan key:generate
      - name: Directory Permissions
        run: chmod -R 777 storage bootstrap/cache
      - name: Create Database
        run: |
          mkdir -p database
          touch database/database.sqlite
      - name: Execute tests (Unit and Feature tests) via PHPUnit
        env:
          DB_CONNECTION: sqlite
          DB_DATABASE: database/database.sqlite
        run: php artisan test
```

#直し方
まずは原因を探る。
composerを実行しているコマンドから`-q`または`--quiet`を削除します。
これはメッセージを出力しないようにするものなのですが、エラーの現在は状況がわからなくなります。

```bash
composer install -q --no-ansi --no-interaction --no-scripts --no-suggest --no-progress --prefer-dist
# -qを抜く
composer install --no-ansi --no-interaction --no-scripts --no-suggest --no-progress --prefer-dist
```

それを再度pushし直すと当然エラーが出ますので、ようやく原因がわかります。

一部ですが下記のようなエラーが出ていました。
PHPのバージョンが違うので入れれないてきなメッセージです。

```
Problem 1
    - Root composer.json requires php ^7.2.5 but your php version (8.0.0) does not satisfy that requirement.
  Problem 2
    - asm89/stack-cors is locked to version v2.0.1 and an update of this package was not requested.
    - asm89/stack-cors v2.0.1 requires php ^7.0 -> your php version (8.0.0) does not satisfy that requirement.
  Problem 3
    - bensampo/laravel-enum is locked to version v1.38.0 and an update of this package was not requested.
    - bensampo/laravel-enum v1.38.0 requires php ~7.1 -> your php version (8.0.0) does not satisfy that requirement.
  Problem 4
    - composer/composer is locked to version 1.10.13 and an update of this package was not requested.
    - composer/composer 1.10.13 requires php ^5.3.2 || ^7.0 -> your php version (8.0.0) does not satisfy that 
```

なので、PHPのバージョンを切り替えてあげます

`shivammathur/setup-php@v2`を使い簡単にPHPのバージョンを切り替えられます。([参考](https://qiita.com/nagi125/items/6c9d50b0da0f92d8f301))

下記をワークフローに追加

```
 - name: Setup PHP
        uses: shivammathur/setup-php@v2
        with:
          php-version: "7.4"
```

最終的に下記のようになりました。
どうせ折り畳めるので`-q`はそのままなくすことにしました。

```yml:github-actions
name: Laravel

on:
  push:
    branches: [master, develop]
  pull_request:
    branches: [master, develop]

jobs:
  laravel-tests:
    runs-on: ubuntu-latest
    steps:
      - name: Setup PHP
        uses: shivammathur/setup-php@v2
        with:
          php-version: "7.4"
      - uses: actions/checkout@v2
      - name: Copy .env
        run: php -r "file_exists('.env') || copy('.env.example', '.env');"
      - name: Install Dependencies
        run: composer install --no-ansi --no-interaction --no-scripts --no-suggest --no-progress --prefer-dist
      - name: Generate key
        run: php artisan key:generate
      - name: Directory Permissions
        run: chmod -R 777 storage bootstrap/cache
      - name: Create Database
        run: |
          mkdir -p database
          touch database/database.sqlite
      - name: Execute tests (Unit and Feature tests) via PHPUnit
        env:
          DB_CONNECTION: sqlite
          DB_DATABASE: database/database.sqlite
        run: php artisan test
```