51 lines
1.3 KiB
YAML
51 lines
1.3 KiB
YAML
name: CI
|
|
|
|
on: [push, pull_request]
|
|
|
|
jobs:
|
|
tests:
|
|
runs-on: ubuntu-latest
|
|
|
|
strategy:
|
|
matrix:
|
|
php: [8.2, 8.3, 8.4, 8.5]
|
|
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v6
|
|
|
|
- name: Setup PHP != 8.5
|
|
if: ${{ matrix.php != '8.5' }}
|
|
uses: shivammathur/setup-php@v2
|
|
with:
|
|
php-version: ${{ matrix.php }}
|
|
coverage: none
|
|
tools: phpstan, phpcs
|
|
|
|
- name: Setup PHP 8.5
|
|
if: ${{ matrix.php == '8.5' }}
|
|
uses: shivammathur/setup-php@v2
|
|
with:
|
|
php-version: ${{ matrix.php }}
|
|
coverage: none
|
|
tools: phpstan, phpcs
|
|
# this ini directive seems to be off by default in PHP 8.5
|
|
# see https://github.com/php/php-src/issues/20279
|
|
# enable it because codeception relies on it.
|
|
ini-values: register_argc_argv=1
|
|
|
|
- name: Validate composer.json and composer.lock
|
|
run: composer validate
|
|
|
|
- name: Install dependencies
|
|
run: composer install --prefer-dist --no-progress --no-interaction --no-suggest
|
|
|
|
- name: Run PHPStan
|
|
run: phpstan analyse src
|
|
|
|
- name: Run PHPCS
|
|
run: phpcs --standard=PSR12 src
|
|
|
|
- name: Run test suite
|
|
run: php vendor/bin/codecept run
|