Skip to content

Fix bug on eager class constructor validation for generic checking ignoring inline var annotation and fix missing support for default property intialiazation, and quality of life improvements #286

Fix bug on eager class constructor validation for generic checking ignoring inline var annotation and fix missing support for default property intialiazation, and quality of life improvements

Fix bug on eager class constructor validation for generic checking ignoring inline var annotation and fix missing support for default property intialiazation, and quality of life improvements #286

Workflow file for this run

name: CI
on:
push:
branches:
- main
pull_request:
branches:
- main
permissions:
contents: read
jobs:
test:
name: PHP ${{ matrix.php }} (${{ matrix.os }})
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
php: ['8.2', '8.3', '8.4', '8.5']
steps:
- name: Checkout Code
uses: actions/checkout@v4
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
extensions: dom, mbstring, zip, libxml, json, tokenizer, fileinfo
coverage: ${{ matrix.os == 'ubuntu-latest' && matrix.php == '8.4' && 'pcov' || 'none' }}
- name: Install Dependencies
uses: ramsey/composer-install@v3
with:
dependency-versions: ${{ matrix.php == '8.2' && 'lowest' || 'highest' }}
- name: Run Static Analysis (PHPStan)
run: ./vendor/bin/phpstan analyse --no-progress
if: matrix.os == 'ubuntu-latest' && matrix.php == '8.3'
- name: Warm Up TypePHP Cache
run: php bin/typephp cache:warm
- name: Run Runtime Type Checking Engine Suite (Pest)
run: ./vendor/bin/pest tests/TypeChecking --compact
- name: Run Full Test Suite with Coverage (Pest)
run: ./vendor/bin/pest --coverage-clover=clover.xml --compact
if: matrix.os == 'ubuntu-latest' && matrix.php == '8.4'
- name: Run Full Test Suite (Pest)
run: ./vendor/bin/pest --compact
if: "! (matrix.os == 'ubuntu-latest' && matrix.php == '8.4')"
- name: Upload Coverage to Codecov
uses: codecov/codecov-action@v5
if: matrix.os == 'ubuntu-latest' && matrix.php == '8.4'
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: clover.xml
fail_ci_if_error: false