name: build on: [ push, pull_request ] env: DEFAULT_COMPOSER_FLAGS: "--prefer-dist --no-interaction --no-progress --optimize-autoloader --ansi --ignore-platform-req=php" jobs: phpunit: name: PHP ${{ matrix.php }}-${{ matrix.os }} runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: os: [ ubuntu-latest ] php: [ "7.3", "7.4", "8.0", "8.1", "8.2", "8.3", "8.4" ] steps: - name: Checkout uses: actions/checkout@v4 - name: Install PHP uses: shivammathur/setup-php@v2 with: php-version: ${{ matrix.php }} - name: Determine composer cache directory id: composer-cache run: echo "COMPOSER_CACHE_DIR=$(composer config cache-dir)" >> $GITHUB_ENV - name: Cache dependencies composer installed with composer uses: actions/cache@v4 with: path: ${{ env.COMPOSER_CACHE_DIR }} key: php${{ matrix.php }}-composer-${{ hashFiles('composer.json') }} restore-keys: php${{ matrix.php }}-composer- - name: Update composer run: composer self-update - name: Install dependencies with composer run: composer update $DEFAULT_COMPOSER_FLAGS - name: Run unit tests with coverage run: vendor/bin/phpunit --verbose --coverage-clover=coverage.clover --colors=always if: matrix.php == '7.4' - name: Run unit tests without coverage run: vendor/bin/phpunit --verbose --colors=always if: matrix.php != '7.4' - name: Upload code coverage run: | wget https://scrutinizer-ci.com/ocular.phar php ocular.phar code-coverage:upload --format=php-clover coverage.clover if: matrix.php == '7.4' continue-on-error: true # if is fork