--- name: PHP Composer on: push: branches: [ "main" ] pull_request: branches: [ "main" ] permissions: contents: read jobs: build: # pre-installed php from 7.4 to 8.3 runs-on: ubuntu-24.04 strategy: matrix: php-versions: ['8.2', '8.3', '8.4'] steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - uses: shivammathur/setup-php@44454db4f0199b8b9685a5d763dc37cbf79108e1 # 2.36.0 with: php-version: ${{ matrix.php-versions }} - name: Validate composer.json and composer.lock run: composer validate --strict - name: Cache Composer packages id: composer-cache uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v5.0.3 with: path: ~/.composer/cache key: ${{ runner.os }}-composer-${{ matrix.php-versions }}-${{ hashFiles('**/composer.lock') }} restore-keys: | ${{ runner.os }}-composer-${{ matrix.php-versions }}- ${{ runner.os }}-composer- - name: Install dependencies run: composer install --prefer-dist --no-progress - name: Run linting run: composer lint - name: Run static analysis run: composer phpstan - name: Run test suite run: composer test