name: ecs

on: [ push, pull_request ]

env:
    DEFAULT_COMPOSER_FLAGS: "--prefer-dist --no-interaction --no-progress --optimize-autoloader --ansi --ignore-platform-req=php"

jobs:
    easy-coding-standard:
        name: PHP ${{ matrix.php }}-${{ matrix.os }}
        runs-on: ${{ matrix.os }}
        strategy:
            fail-fast: false
            matrix:
                os: [ ubuntu-latest ]
                php: [ "8.0", "8.1", "8.2", "8.3", "8.4" ]

        steps:
            -   name: Checkout
                uses: actions/checkout@v4
            -   name: Install PHP
                uses: shivammathur/setup-php@v2
                with:
                    php-version: ${{ matrix.php }}
            -   name: Determine composer cache directory
                id: composer-cache
                run: echo "COMPOSER_CACHE_DIR=$(composer config cache-dir)" >> $GITHUB_ENV
            -   name: Cache dependencies composer installed with composer
                uses: actions/cache@v4
                with:
                    path: ${{ env.COMPOSER_CACHE_DIR }}
                    key: php${{ matrix.php }}-composer-${{ hashFiles('composer.json') }}
                    restore-keys: php${{ matrix.php }}-composer-
            -   name: Update composer
                run: composer self-update
            -   name: Install dependencies with composer
                run: composer update $DEFAULT_COMPOSER_FLAGS
            -   name: Run easy-coding-standard
                run: vendor/bin/ecs check src tests --ansi
