# CI workflow for library packages (host-uk/core-*, etc.) # Copy this to .github/workflows/ci.yml in library repos name: CI on: push: branches: [main] pull_request: branches: [main] jobs: tests: runs-on: ubuntu-latest strategy: fail-fast: true matrix: php: [8.2, 8.3, 8.4] laravel: [11.*, 12.*] exclude: - php: 8.2 laravel: 12.* name: PHP ${{ matrix.php }} / Laravel ${{ matrix.laravel }} steps: - name: Checkout uses: actions/checkout@v4 - name: Setup PHP uses: shivammathur/setup-php@v2 with: php-version: ${{ matrix.php }} extensions: dom, curl, libxml, mbstring, zip, pcntl, pdo, sqlite, pdo_sqlite coverage: pcov - name: Install dependencies run: | composer require "laravel/framework:${{ matrix.laravel }}" --no-interaction --no-update composer update --prefer-dist --no-interaction --no-progress - name: Run Pint run: vendor/bin/pint --test - name: Run tests run: vendor/bin/pest --ci --coverage --coverage-clover coverage.xml - name: Upload coverage to Codecov if: matrix.php == '8.3' && matrix.laravel == '12.*' uses: codecov/codecov-action@v4 with: files: coverage.xml fail_ci_if_error: false token: ${{ secrets.CODECOV_TOKEN }}