Skip to content

PHPUnit

PHPUnit #104

Workflow file for this run

name: PHPUnit
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
workflow_dispatch:
schedule:
- cron: '0 8 * * 4'
permissions:
contents: read
jobs:
test:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
php: ['8.0', 8.1, 8.2, 8.3]
laravel: ['8.0', '9.0', '10.0', '11.0']
exclude:
- php: 8.2
laravel: '8.0'
- php: 8.3
laravel: '8.0'
- php: 8.3
laravel: '9.0'
- php: '8.0'
laravel: '10.0'
- php: '8.0'
laravel: '11.0'
- php: '8.1'
laravel: '11.0'
name: PHP ${{ matrix.php }} - Laravel ${{ matrix.laravel }}
steps:
- uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
- uses: actions/checkout@v4
- name: Validate composer.json and composer.lock
run: composer validate --strict
- name: Cache Composer packages
id: composer-cache
uses: actions/cache@v4
with:
path: vendor
key: ${{ runner.os }}-php${{ matrix.php }}-laravel${{ matrix.laravel }}-${{ hashFiles('**/composer.lock') }}
restore-keys: |
${{ runner.os }}-php${{ matrix.php }}-laravel${{ matrix.laravel }}
- name: Install dependencies
run: |
composer require laravel/framework ^${{ matrix.laravel }} --dev --no-update
composer update --prefer-dist --no-interaction --no-progress
- name: Run test suite
run: composer phpunit:coverage
- name: Upload coverage reports to Codecov with GitHub Action
if: ${{ matrix.php == '8.1' && matrix.laravel == '10.0' }}
uses: codecov/codecov-action@v4
with:
file: ./clover.xml
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}