name: 'PHPStan Static Analysis'

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

jobs:
    phpstan:
        name: PHPStan
        runs-on: ubuntu-latest

        steps:
            -   name: Checkout code
                uses: actions/checkout@v4
                with:
                    fetch-depth: 1

            -   name: Setup PHP
                uses: shivammathur/setup-php@v2
                with:
                    php-version: '7.4'
                    coverage: none
                    tools: composer:v2

            -   name: Get Composer Cache Directory
                id: composer-cache
                run: |
                    echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT

            -   name: Cache Composer dependencies
                uses: actions/cache@v4
                with:
                    path: ${{ steps.composer-cache.outputs.dir }}
                    key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
                    restore-keys: |
                        ${{ runner.os }}-composer-

            -   name: Install dependencies
                run: composer install --prefer-dist --no-progress --no-suggest --no-interaction

            -   name: Run PHPStan
                run: composer phpstan
