name: CI on: pull_request: push: branches: - main env: COMPOSER_ROOT_VERSION: '1.99.99' jobs: lint: name: Lint runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: shivammathur/setup-php@v2 with: php-version: '7.4' coverage: none ini-values: memory_limit=-1 tools: composer:v2 - uses: ramsey/composer-install@v3 - name: 'Lint the PHP source code' run: ./vendor/bin/parallel-lint src test coding-standards: name: Coding Standards runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: shivammathur/setup-php@v2 with: php-version: '7.4' coverage: none ini-values: memory_limit=-1 tools: composer:v2 - uses: ramsey/composer-install@v3 - name: Check coding standards run: ./vendor/bin/phpcs src --standard=psr2 -sp --colors unit-tests: name: Unit Tests runs-on: ubuntu-latest continue-on-error: ${{ matrix.experimental }} strategy: fail-fast: false matrix: php-version: - '5.6' - '7.0' - '7.1' - '7.2' - '7.3' - '7.4' - '8.0' - '8.1' - '8.2' - '8.4' dependencies: - lowest - highest experimental: - false include: - php-version: '8.3' experimental: false steps: - uses: actions/checkout@v4 - uses: shivammathur/setup-php@v2 with: php-version: '${{ matrix.php-version }}' coverage: pcov ini-values: memory_limit=-1 tools: composer:v2 - name: Prepare for tests run: mkdir -p build/logs - uses: ramsey/composer-install@v3 with: dependency-versions: '${{ matrix.dependencies }}' composer-options: '${{ matrix.composer-options }}' - name: Run unit tests run: ./vendor/bin/phpunit --colors=always --coverage-clover build/logs/clover.xml - name: Publish coverage report to Codecov uses: codecov/codecov-action@v4