Skip to content

Tests

Tests #315

Workflow file for this run

name: "Tests"
on:
push:
paths-ignore:
- "**.md"
- 'docs/**'
# Prevent duplicating jobs on PR-s from local branches
branches:
- "2.x"
pull_request:
paths-ignore:
- "**.md"
- 'docs/**'
schedule:
- cron: "0 0 * * *"
concurrency:
group: tests-${{ github.head_ref || github.run_id }} # will be canceled on subsequent pushes in pull requests but not branches
cancel-in-progress: true
jobs:
tests:
strategy:
fail-fast: false
matrix:
php: ["8.0", "8.1", "8.2", "8.3"]
laravel: ["^9.52.16", "^10.28.0", "^11.0"]
dependencies:
- "lowest"
- "highest"
exclude:
- php: "8.0"
laravel: "^10.28.0"
dependencies: "lowest"
- php: "8.0"
laravel: "^10.28.0"
dependencies: "highest"
- php: "8.0"
laravel: "^11.0"
dependencies: "highest"
- php: "8.0"
laravel: "^11.0"
dependencies: "lowest"
- php: "8.1"
laravel: "^11.0"
dependencies: "highest"
- php: "8.1"
laravel: "^11.0"
dependencies: "lowest"
name: "PHP${{ matrix.php }} - Laravel${{ matrix.laravel }} ${{ matrix.dependencies == 'highest' && '↑' || '↓' }}"
runs-on: "ubuntu-latest"
steps:
- name: "Checkout code"
uses: "actions/checkout@v4"
- name: "Setup PHP"
uses: "shivammathur/setup-php@v2"
with:
php-version: "${{ matrix.php }}"
extensions: "dom, curl, libxml, mbstring, zip, fileinfo"
tools: "composer:v2"
coverage: "none"
- name: "Check Composer configuration"
run: "composer validate --strict"
- name: "Check file permissions"
run: "test \"$(find . -type f -not -path './.git/*' -executable)\" == ./tests/laravel-test.sh"
- name: "Install lowest dependencies from composer.json"
if: "matrix.dependencies == 'lowest'"
run: "composer update --with='laravel/framework:${{ matrix.laravel }}' --no-interaction --no-progress --prefer-lowest"
- name: "Install highest dependencies from composer.json"
if: "matrix.dependencies == 'highest'"
run: "composer update --with='laravel/framework:${{ matrix.laravel }}' --no-interaction --no-progress"
- name: "Check PSR-4 mapping"
run: "composer dump-autoload --optimize --strict-psr"
- name: "Execute unit tests"
run: "composer run-script test:unit"
- name: "Run Larastan on a sample Laravel application"
run: |
version="${{ matrix.laravel }}"
tests/laravel-test.sh "${version%%.*}.0"