1- name : PHP Composer
1+ name : Main
22
3- on :
4- push :
5- branches : [ "main" ]
6- pull_request :
7- branches : [ "main" ]
8-
9- permissions :
10- contents : read
3+ on : ['push', 'pull_request']
114
125jobs :
13- build :
6+ ci :
7+ runs-on : ${{ matrix.os }}
8+ strategy :
9+ fail-fast : true
10+ matrix :
11+ os : [ubuntu-latest, macos-latest]
12+ php : ['8.2', '8.3', '8.4']
13+ dependency-version : [prefer-lowest, prefer-stable]
1414
15- runs-on : ubuntu-latest
15+ name : Tests P${{ matrix.php }} - ${{ matrix.os }} - ${{ matrix.dependency-version }}
1616
1717 steps :
18- - uses : actions/checkout@v4
1918
20- - name : Validate composer.json and composer.lock
21- run : composer validate --strict
19+ - name : Checkout
20+ uses : actions/checkout@v3
21+
22+ - name : Setup PHP
23+ uses : shivammathur/setup-php@v2
24+ with :
25+ php-version : ${{ matrix.php }}
26+ coverage : xdebug
2227
23- - name : Cache Composer packages
28+ - name : Get Composer cache directory
2429 id : composer-cache
30+ shell : bash
31+ run : echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
32+
33+ - name : Cache dependencies
2534 uses : actions/cache@v3
2635 with :
27- path : vendor
28- key : ${{ runner.os }}-php-${{ hashFiles('**/composer.lock') }}
29- restore-keys : |
30- ${{ runner.os }}-php-
36+ path : ${{ steps.composer-cache.outputs.dir }}
37+ key : dependencies-php-${{ matrix.php }}-os-${{ matrix.os }}-${{ matrix.dependency-version }}-symfony-${{ matrix.symfony }}-composer-${{ hashFiles('composer.json') }}
38+ restore-keys : dependencies-php-${{ matrix.php }}-os-${{ matrix.os }}-${{ matrix.dependency-version }}-symfony-${{ matrix.symfony }}-composer-
3139
32- - name : Install dependencies
33- run : composer install --prefer-dist --no-progress
40+ - name : Install Composer dependencies
41+ run : |
42+ composer update --${{ matrix.dependency-version }} --no-interaction --prefer-dist
3443
35- - name : Run test suite
44+ - name : Full Test Suite
3645 run : composer test
0 commit comments