Skip to content

Workflow file for this run

name: 'Continuous Integration'
on:
pull_request: ~
push:
branches: [ main ]
jobs:
composer-validate:
name: Composer Validate
runs-on: ubuntu-latest
steps:
- name: 'Checkout Code'
uses: actions/checkout@v4
- name: 'Validate composer.json'
run: composer validate --strict --ansi
code-analysis:
needs: composer-validate
name: ${{ matrix.actions.name }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
actions:
- name: 'Coding Standard'
run: vendor/bin/ecs check --no-progress-bar --ansi
- name: 'Rector'
run: vendor/bin/rector process --dry-run --no-progress-bar --ansi
- name: 'Psalm'
run: vendor/bin/psalm --stats --no-progress --output-format=github --threads=$(nproc)
- name: 'PHPStan'
run: vendor/bin/phpstan analyze --no-progress --error-format=github --ansi --configuration=phpstan.dist.neon ./
steps:
- name: 'Checkout Code'
uses: actions/checkout@v4
- name: 'Setup PHP'
uses: shivammathur/setup-php@v2
with:
php-version: 8.2
coverage: none
tools: composer:v2
- name: 'Install Dependencies'
uses: "ramsey/composer-install@v2"
with:
composer-options: "--optimize-autoloader"
- run: ${{ matrix.actions.run }}
test:
needs: composer-validate
name: PHPUnit
runs-on: ubuntu-latest
strategy:
matrix:
php: [ '7.4', '8.0', '8.2' ]
dependencies: [ highest, lowest ]
steps:
- name: 'Checkout Code'
uses: actions/checkout@v4
- name: 'Setup PHP'
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
coverage: none
tools: composer:v2
- name: 'Install Dependencies'
uses: "ramsey/composer-install@v2"
with:
composer-options: "--optimize-autoloader"
dependency-versions: ${{ matrix.dependencies }}
- name: 'Run PHPUnit'
run: vendor/bin/phpunit --testdox --colors=always --configuration=phpunit.xml.dist