# https://help.github.com/en/categories/automating-your-workflow-with-github-actions on: - pull_request - push name: CI env: COMPOSER_ROOT_VERSION: "9.2-dev" jobs: coding-guidelines: name: Coding Guidelines runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v3 - name: Install PHP uses: shivammathur/setup-php@v2 with: php-version: 8.2 extensions: :apcu, :imagick coverage: none tools: none - name: Run PHP-CS-Fixer run: ./tools/php-cs-fixer fix --dry-run --show-progress=dots --using-cache=no --verbose type-checker: name: Type Checker runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v3 - name: Install PHP uses: shivammathur/setup-php@v2 with: php-version: 8.2 extensions: :apcu, :imagick coverage: none tools: none - name: Update dependencies with composer run: ./tools/composer update --no-interaction --no-ansi --no-progress - name: Run vimeo/psalm run: ./tools/psalm --config=.psalm/config.xml --no-progress --shepherd --show-info=false --stats tests: name: Tests runs-on: ${{ matrix.os }} env: PHP_EXTENSIONS: dom, json, libxml, mbstring, pdo_sqlite, soap, xml, xmlwriter, :apcu, :imagick PHP_INI_VALUES: memory_limit=-1, assert.exception=1, zend.assertions=1, error_reporting=-1, log_errors_max_len=0, display_errors=On strategy: fail-fast: false matrix: os: - ubuntu-latest - windows-latest php-version: - "7.3" - "7.4" - "8.0" - "8.1" - "8.2" - "8.3" - "8.4" coverage-driver: - "pcov" - "xdebug" - "xdebug3" exclude: - php-version: "8.0" coverage-driver: "xdebug" - php-version: "8.1" coverage-driver: "xdebug" - php-version: "8.2" coverage-driver: "xdebug" - php-version: "8.3" coverage-driver: "xdebug" steps: - name: Configure Git to avoid issues with line endings if: matrix.os == 'windows-latest' run: git config --global core.autocrlf false - name: Checkout uses: actions/checkout@v3 - name: Install PHP with extensions uses: shivammathur/setup-php@v2 with: php-version: ${{ matrix.php-version }} coverage: ${{ matrix.coverage-driver }} extensions: ${{ env.PHP_EXTENSIONS }} ini-values: ${{ env.PHP_INI_VALUES }} tools: none - name: Install dependencies with Composer run: php ./tools/composer update --no-ansi --no-interaction --no-progress - name: Run tests with PHPUnit run: vendor/bin/phpunit --coverage-clover=coverage.xml - name: Send code coverage report to Codecov.io uses: codecov/codecov-action@v3 with: token: ${{ secrets.CODECOV_TOKEN }}