Skip to content

Use include list for testing matrix #178

Use include list for testing matrix

Use include list for testing matrix #178

name: "Continuous Integration"
on:
- pull_request
- push
jobs:
static-code-analysis:
name: "Static Code Analysis"
runs-on: ubuntu-latest
steps:
- name: "Checkout"
uses: actions/checkout@v2
- name: "Install PHP with extensions"
uses: shivammathur/setup-php@v2
with:
php-version: 8.3
- name: "Install locked dependencies with composer"
run: composer install --no-interaction --no-progress
- name: "Run phpstan/phpstan"
run: vendor/bin/phpstan analyse --configuration=phpstan.neon --memory-limit=-1
tests:
name: "Tests"
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
include:
# PHP 7.2
- { php-version: "7.2", laravel-version: "5.6.*" }
- { php-version: "7.2", laravel-version: "5.7.*" }
- { php-version: "7.2", laravel-version: "5.8.*" }
- { php-version: "7.2", laravel-version: "^6" }
- { php-version: "7.2", laravel-version: "^7" }
# PHP 7.3
- { php-version: "7.3", laravel-version: "5.6.*" }
- { php-version: "7.3", laravel-version: "5.7.*" }
- { php-version: "7.3", laravel-version: "5.8.*" }
- { php-version: "7.3", laravel-version: "^6" }
- { php-version: "7.3", laravel-version: "^7" }
- { php-version: "7.3", laravel-version: "^8" }
# PHP 7.4
- { php-version: "7.4", laravel-version: "5.6.*" }
- { php-version: "7.4", laravel-version: "5.7.*" }
- { php-version: "7.4", laravel-version: "5.8.*" }
- { php-version: "7.4", laravel-version: "^6" }
- { php-version: "7.4", laravel-version: "^7" }
- { php-version: "7.4", laravel-version: "^8" }
# PHP 8.0
- { php-version: "8.0", laravel-version: "^6" }
- { php-version: "8.0", laravel-version: "^7" }
- { php-version: "8.0", laravel-version: "^8" }
- { php-version: "8.0", laravel-version: "^9" }
# PHP 8.1
- { php-version: "8.1", laravel-version: "^8" }
- { php-version: "8.1", laravel-version: "^9" }
- { php-version: "8.1", laravel-version: "^10" }
# PHP 8.2
- { php-version: "8.2", laravel-version: "^8" }
- { php-version: "8.2", laravel-version: "^9" }
- { php-version: "8.2", laravel-version: "^10" }
- { php-version: "8.2", laravel-version: "^11" }
- { php-version: "8.2", laravel-version: "^12" }
# PHP 8.3
- { php-version: "8.3", laravel-version: "^8" }
- { php-version: "8.3", laravel-version: "^9" }
- { php-version: "8.3", laravel-version: "^10" }
- { php-version: "8.3", laravel-version: "^11" }
- { php-version: "8.3", laravel-version: "^12" }
- { php-version: "8.3", laravel-version: "^13" }
# PHP 8.4
- { php-version: "8.4", laravel-version: "^11" }
- { php-version: "8.4", laravel-version: "^12" }
- { php-version: "8.4", laravel-version: "^13" }
# PHP 8.5
- { php-version: "8.5", laravel-version: "^12" }
- { php-version: "8.5", laravel-version: "^13" }
steps:
- name: "Checkout"
uses: actions/checkout@v2
- name: "Install PHP with extensions"
uses: shivammathur/setup-php@v2
with:
coverage: none
extensions: mbstring
php-version: ${{ matrix.php-version }}
- name: "Install dependencies with composer"
run: composer require illuminate/contracts:${{ matrix.laravel-version }} --no-interaction --prefer-dist
- name: "Run unit tests with phpunit/phpunit"
run: vendor/bin/phpunit
code-coverage:
name: "Code Coverage"
runs-on: ubuntu-latest
steps:
- name: "Checkout"
uses: actions/checkout@v2
- name: "Install PHP with extensions"
uses: shivammathur/setup-php@v2
with:
coverage: pcov
php-version: 8.3
- name: "Install locked dependencies with composer"
run: composer install --no-interaction --no-progress
- name: "Collect code coverage with Xdebug and phpunit/phpunit"
run: vendor/bin/phpunit --coverage-clover=build/logs/clover.xml
# Not using codecov/codecov-action for now, as the build is prohibitively slow
- name: "Download code coverage uploader for Codecov.io"
run: curl -s https://codecov.io/bash -o codecov
- name: "Send code coverage report to Codecov.io"
run: bash codecov -t ${{ secrets.CODECOV_TOKEN }}