name: "Continuous Integration" on: pull_request: branches: - "*.x" push: branches: - "*.x" jobs: phpunit: name: "PHPUnit" runs-on: "ubuntu-20.04" env: SYMFONY_REQUIRE: ${{matrix.symfony-require}} SYMFONY_DEPRECATIONS_HELPER: ${{matrix.symfony-deprecations-helper}} strategy: fail-fast: false matrix: php-version: - "7.1" - "7.2" - "7.3" - "7.4" dependencies: - "highest" stability: - "stable" symfony-require: - "" symfony-deprecations-helper: - "" include: # Tests the lowest set of dependencies - dependencies: "lowest" stability: "stable" php-version: "7.1" symfony-deprecations-helper: "weak" # Test against latest Symfony 4.4 dev - symfony-require: "4.4.*" dependencies: "highest" php-version: "7.3" symfony-deprecations-helper: "weak" # Test against latest Symfony 5.2 dev - symfony-require: "5.2.*" dependencies: "highest" php-version: "7.3" symfony-deprecations-helper: "weak" - php-version: "8.0" dependencies: "highest" stability: "dev" symfony-deprecations-helper: "weak" steps: - name: "Checkout" uses: "actions/checkout@v2" with: fetch-depth: 2 - name: "Install PHP with XDebug" uses: "shivammathur/setup-php@v2" if: "${{ matrix.php-version == '7.1' }}" with: php-version: "${{ matrix.php-version }}" coverage: "xdebug" ini-values: "zend.assertions=1" extensions: "pdo_sqlite" - name: "Install PHP with PCOV" uses: "shivammathur/setup-php@v2" if: "${{ matrix.php-version != '7.1' }}" with: php-version: "${{ matrix.php-version }}" coverage: "pcov" ini-values: "zend.assertions=1" extensions: "pdo_sqlite" - name: "Globally install symfony/flex" run: "composer global require --no-progress --no-scripts --no-plugins symfony/flex" - name: "Require symfony/messenger" run: "composer require --dev symfony/messenger --no-update" if: "${{ startsWith(matrix.symfony-require, '4.') }}" - name: "Enforce using stable dependencies" run: "composer config minimum-stability stable" if: "${{ matrix.stability == 'stable' }}" - name: "Install dependencies with Composer" uses: "ramsey/composer-install@v1" with: dependency-versions: "${{ matrix.dependencies }}" composer-options: "--prefer-dist" - name: "Run PHPUnit" run: "vendor/bin/phpunit --coverage-clover=coverage.xml" - name: "Upload coverage file" uses: "actions/upload-artifact@v2" with: name: "phpunit-${{ matrix.php-version }}-${{ matrix.dependencies }}-${{ hashFiles('composer.lock') }}.coverage" path: "coverage.xml" upload_coverage: name: "Upload coverage to Codecov" runs-on: "ubuntu-20.04" needs: - "phpunit" steps: - name: "Checkout" uses: "actions/checkout@v2" with: fetch-depth: 2 - name: "Download coverage files" uses: "actions/download-artifact@v2" with: path: "reports" - name: "Upload to Codecov" uses: "codecov/codecov-action@v1" with: directory: reports