|
17 | 17 | matrix: |
18 | 18 | php: [8.0, 8.1, 8.2, 8.3, 8.4] |
19 | 19 | dependency-version: [prefer-lowest, prefer-stable] |
| 20 | + optional-deps: [without-jms, without-serializer, with-both] |
| 21 | + name: PHP ${{ matrix.php }} - ${{ matrix.dependency-version }} - ${{ matrix.optional-deps }} |
20 | 22 |
|
21 | 23 | steps: |
22 | 24 | - name: checkout code |
|
28 | 30 | php-version: ${{ matrix.php }} |
29 | 31 | coverage: xdebug |
30 | 32 |
|
| 33 | + - name: get composer cache directory |
| 34 | + id: composer-cache |
| 35 | + run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT |
| 36 | + |
| 37 | + - name: cache composer dependencies |
| 38 | + uses: actions/cache@v4 |
| 39 | + with: |
| 40 | + path: ${{ steps.composer-cache.outputs.dir }} |
| 41 | + key: ${{ runner.os }}-composer-${{ matrix.php }}-${{ matrix.dependency-version }}-${{ hashFiles('**/composer.lock') }} |
| 42 | + restore-keys: | |
| 43 | + ${{ runner.os }}-composer-${{ matrix.php }}-${{ matrix.dependency-version }}- |
| 44 | + ${{ runner.os }}-composer-${{ matrix.php }}- |
| 45 | + ${{ runner.os }}-composer- |
| 46 | +
|
31 | 47 | - name: install dependencies |
32 | | - run: composer update --${{ matrix.dependency-version }} |
| 48 | + run: composer update --${{ matrix.dependency-version }} --no-progress --no-interaction |
| 49 | + |
| 50 | + - name: remove optional dependency (jms/serializer-bundle) |
| 51 | + if: matrix.optional-deps == 'without-jms' |
| 52 | + run: composer remove jms/serializer-bundle --dev --no-progress --no-interaction |
| 53 | + |
| 54 | + - name: remove optional dependency (symfony/serializer) |
| 55 | + if: matrix.optional-deps == 'without-serializer' |
| 56 | + run: composer remove symfony/serializer --dev --no-progress --no-interaction |
33 | 57 |
|
34 | 58 | - name: run tests |
35 | 59 | run: php vendor/bin/phpunit |
0 commit comments