name: CI on: push: branches: - 'main' - '1.x' - '1.next' pull_request: branches: - '*' workflow_dispatch: permissions: contents: read # to fetch code (actions/checkout) jobs: testsuite-linux: runs-on: ubuntu-24.04 strategy: fail-fast: false matrix: php-version: [ '8.1', '8.2', '8.3', '8.4'] dependencies: ['highest'] include: - php-version: '8.1' dependencies: 'lowest' - php-version: '8.3' dependencies: 'highest' steps: - uses: actions/checkout@v4 - name: Setup PHP uses: shivammathur/setup-php@v2 with: php-version: ${{ matrix.php-version }} extensions: mbstring, intl ini-values: zend.assertions=1 coverage: pcov tools: cs2pr - name: Composer install uses: ramsey/composer-install@v3 with: dependency-versions: ${{ matrix.dependencies }} composer-options: ${{ matrix.composer-options }} - name: Run PHPUnit run: | if [[ ${{ matrix.php-version }} == '8.2' ]]; then vendor/bin/phpunit --coverage-clover=coverage.xml else vendor/bin/phpunit fi - name: Code Coverage Report if: success() && matrix.php-version == '8.2' uses: codecov/codecov-action@v5 cs-stan: name: Coding Standard & Static Analysis runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v4 - name: Setup PHP uses: shivammathur/setup-php@v2 with: php-version: '8.2' extensions: mbstring, intl coverage: none tools: phive, cs2pr - name: Composer Install uses: ramsey/composer-install@v3 - name: Install PHP tools with phive. run: "phive install --trust-gpg-keys CF1A108D0E7AE720,51C67305FFC2E5C0,12CE0F1D262429A5" - name: Run phpcs run: vendor/bin/phpcs --report=checkstyle src/ tests/ | cs2pr - name: Run psalm run: tools/psalm --output-format=github - name: Run phpstan if: always() run: tools/phpstan analyse --error-format=github