name: CI
on:
pull_request:
branches: [ "main" ]
jobs:
tests:
name: PHP ${{ matrix.php-versions }} ? ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
php-versions: ["8.1", "8.2", "8.3", "8.4", "8.5"]
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php-versions }}
coverage: none
tools: composer:v2
- name: Validate composer.json (ignore lock file for library)
run: composer validate --strict --no-check-lock
- name: Cache Composer dependencies
uses: actions/cache@v4
with:
path: vendor
key: ${{ runner.os }}-php-${{ matrix.php-versions }}-composer-${{ hashFiles('**/composer.lock') }}
restore-keys: |
${{ runner.os }}-php-${{ matrix.php-versions }}-composer-
${{ runner.os }}-php-
- name: Install dependencies (update for library matrix)
run: composer update --no-interaction --no-progress --prefer-dist
- name: PHP Lint (syntax)
run: composer run lint
- name: Run tests (no coverage)
run: composer test
|