1212
1313jobs :
1414 phpcs :
15- name : PHPCS
16- runs-on : ubuntu-latest
15+ name : phpcs
16+ runs-on : macos-latest
17+ strategy :
18+ fail-fast : false
19+ matrix :
20+ php-versions : ['8.1', '8.2', '8.3', '8.4']
1721 steps :
1822 - uses : actions/checkout@v4
1923
20- - name : Cache Composer dependencies
21- uses : actions/cache@v2
24+ - name : Setup PHP, with composer and xdebug
25+ uses : shivammathur/setup-php@v2 # https://github.com/shivammathur/setup-php
26+ with :
27+ php-version : ${{ matrix.php-versions }}
28+ coverage : xdebug
29+
30+ - name : Get composer cache directory
31+ id : composer-cache
32+ run : echo "::set-output name=dir::$(composer config cache-files-dir)"
33+
34+ - name : Cache composer dependencies
35+ uses : actions/cache@v4
2236 with :
23- path : /tmp/composer-cache
24- key : ${{ runner.os }}-${{ hashFiles('**/composer.lock') }}
37+ path : ${{ steps.composer-cache.outputs.dir }}
38+ key : ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
39+ restore-keys : ${{ runner.os }}-composer-
2540
26- - uses : php-actions/composer@v5
41+ - name : Install Composer dependencies
42+ run : composer install --no-progress --prefer-dist --optimize-autoloader --ignore-platform-reqs
2743
2844 - name : PHPCS
29- run : ./vendor/bin/phpcs
45+ run : composer run lint:style
3046
3147 phpstan :
32- name : PHPStan
33- runs-on : ubuntu -latest
48+ name : phpstan
49+ runs-on : macos -latest
3450 strategy :
3551 fail-fast : false
3652 matrix :
37- php-versions :
38- - ' 7.3'
39- - ' 7.4'
40- - ' 8.0'
41- - ' 8.1'
53+ php-versions : ['8.1', '8.2', '8.3', '8.4']
4254 steps :
4355 - uses : actions/checkout@v4
4456
@@ -53,32 +65,36 @@ jobs:
5365 run : echo "::set-output name=dir::$(composer config cache-files-dir)"
5466
5567 - name : Cache composer dependencies
56- uses : actions/cache@v2
68+ uses : actions/cache@v4
5769 with :
5870 path : ${{ steps.composer-cache.outputs.dir }}
5971 key : ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
6072 restore-keys : ${{ runner.os }}-composer-
6173
6274 - name : Install Composer dependencies
63- run : composer install --no-progress --prefer-dist --optimize-autoloader
75+ run : composer install --no-progress --prefer-dist --optimize-autoloader --ignore-platform-reqs
6476
6577 - name : PHPStan
66- run : ./vendor/bin/phpstan
78+ run : composer run lint:static
6779
6880 test :
69- name : Unit test
7081 runs-on : ubuntu-latest
7182 strategy :
7283 fail-fast : false
7384 matrix :
74- php-versions :
75- - ' 7.3'
76- - ' 7.4'
77- - ' 8.0'
78- - ' 8.1'
85+ php-versions : ['8.1', '8.2', '8.3', '8.4']
86+ env :
87+ PHP_VERSION : ${{ matrix.php-versions }}
7988 steps :
8089 - uses : actions/checkout@v4
8190
91+ - uses : actions/setup-node@v4
92+ with :
93+ node-version : 22
94+ cache : ' npm'
95+
96+ - run : npx bun install
97+
8298 - name : Setup PHP, with composer and xdebug
8399 uses : shivammathur/setup-php@v2 # https://github.com/shivammathur/setup-php
84100 with :
@@ -90,14 +106,18 @@ jobs:
90106 run : echo "::set-output name=dir::$(composer config cache-files-dir)"
91107
92108 - name : Cache composer dependencies
93- uses : actions/cache@v2
109+ uses : actions/cache@v4
94110 with :
95111 path : ${{ steps.composer-cache.outputs.dir }}
96112 key : ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
97113 restore-keys : ${{ runner.os }}-composer-
98114
99115 - name : Install Composer dependencies
100- run : composer install --no-progress --prefer-dist --optimize-autoloader
116+ run : composer install --no-progress --prefer-dist --optimize-autoloader --ignore-platform-reqs
117+
118+ - name : Install Pest v3
119+ run : composer require pest/pest:^3.0
120+ if : ${{ matrix.php-version == '8.4' }}
101121
102122 - name : Pest
103123 run : php -v && XDEBUG_MODE=coverage ./vendor/bin/pest --coverage --coverage-clover='coverage.xml'
@@ -106,7 +126,8 @@ jobs:
106126 uses : codecov/codecov-action@v4
107127 with :
108128 token : ${{ secrets.CODECOV_TOKEN }}
109- directory : ./coverage.xml
129+ env_vars : PHP_VERSION
130+ file : ./coverage.xml
110131 flags : unittests
111132 fail_ci_if_error : false
112133 verbose : true
0 commit comments