88 branches : ["main"]
99
1010jobs :
11- php- checks :
12- name : PHP Checks
11+ checks :
12+ name : Quality Checks
1313 runs-on : ubuntu-latest
1414 steps :
1515 - name : " Checkout Code"
@@ -24,16 +24,53 @@ jobs:
2424 - name : " Cache Dependencies"
2525 uses : " actions/cache@v4"
2626 with :
27- path : |
28- ~/.composer/cache
29- key : " composer-cache"
30- restore-keys : " composer-cache"
27+ path : .composer/cache
28+ key : " composer-8.3-lock"
29+ restore-keys : " composer-8.3-lock"
3130 - name : " Install Dependencies"
32- run : " composer install --ansi --no-interaction --no-progress --no-suggest"
33- - name : " Run Continuous Integration"
34- run : composer ci
31+ run : " composer install --ansi --no-interaction --no-progress"
32+ - name : " Check code style"
33+ run : composer fmt:check
34+ - name : " Check Types"
35+ run : composer psalm:gh
36+
37+ test :
38+ name : Test
39+ runs-on : ubuntu-latest
40+ needs : ["checks"]
41+ strategy :
42+ matrix :
43+ php-version : ["8.3", "8.4"]
44+ deps : ["lock", "highest", "lowest"]
45+ steps :
46+ - name : " Checkout Code"
47+ uses : " actions/checkout@v4"
48+ - name : " Install PHP"
49+ uses : " shivammathur/setup-php@v2"
50+ with :
51+ coverage : " xdebug"
52+ php-version : ${{ matrix.php-version }}
53+ ini-values : memory_limit=-1
54+ tools : composer:v2
55+ - name : " Cache Dependencies"
56+ uses : " actions/cache@v4"
57+ with :
58+ path : .composer/cache
59+ key : " composer-${{ matrix.php-version }}-${{ matrix.deps }}"
60+ restore-keys : " composer-${{ matrix.php-version }}-${{ matrix.deps }}"
61+ - name : " Install Dependencies"
62+ if : ${{ matrix.deps == 'lock'}}
63+ run : " composer install --ignore-platform-reqs --ansi --no-interaction --no-progress"
64+ - name : " Install Highest Dependencies"
65+ if : ${{ matrix.deps == 'highest'}}
66+ run : " composer update --ignore-platform-reqs --ansi --no-interaction --no-progress"
67+ - name : " Install Lowest Dependencies"
68+ if : ${{ matrix.deps == 'lowest'}}
69+ run : " composer update --ignore-platform-reqs --prefer-lowest --ansi --no-interaction --no-progress"
70+ - name : " Run Test Suite"
71+ run : composer test
3572 - name : " Upload Coverage Report"
3673 uses : actions/upload-artifact@v4
3774 with :
38- name : " coverage-report"
75+ name : " coverage-report-${{ matrix.php-version }}-${{ matrix.deps }} "
3976 path : .dev/coverage
0 commit comments