@@ -184,6 +184,60 @@ jobs:
184
184
INFECTION_BADGE_API_KEY : ${{ secrets.INFECTION_BADGE_API_KEY }}
185
185
STRYKER_DASHBOARD_API_KEY : ${{ secrets.STRYKER_DASHBOARD_API_KEY }}
186
186
187
+ mutation-tests-phpstan :
188
+ name : " Mutation tests with PHPStan"
189
+
190
+ runs-on : ${{ matrix.operating-system }}
191
+
192
+ strategy :
193
+ matrix :
194
+ dependencies :
195
+ - " locked"
196
+ php-version :
197
+ - " 8.4"
198
+ operating-system :
199
+ - " ubuntu-latest"
200
+
201
+ steps :
202
+ - name : " Checkout"
203
+ uses : " actions/checkout@v4"
204
+
205
+ - name : " Install PHP"
206
+ uses :
" shivammathur/[email protected] "
207
+ with :
208
+ coverage : " xdebug"
209
+ php-version : " ${{ matrix.php-version }}"
210
+ extensions : intl, sodium
211
+ ini-values : memory_limit=-1, zend.assertions=1
212
+
213
+ - name : " Install dependencies"
214
+
215
+ with :
216
+ dependency-versions : " ${{ matrix.dependencies }}"
217
+
218
+ - name : " Install CI dependencies"
219
+
220
+ with :
221
+ dependency-versions : " ${{ matrix.dependencies }}"
222
+ working-directory : " tools"
223
+ custom-cache-suffix : " ci"
224
+
225
+ - name : " Warmup PHPStan"
226
+ run : " tools/vendor/bin/phpstan analyse --memory-limit=-1"
227
+
228
+ - name : " Infection"
229
+ run : " tools/vendor/bin/phpstan-mutant-killer-infection-runner --phpstan-config phpstan.neon --log log.txt --threads=$(nproc)"
230
+ env :
231
+ INFECTION_BADGE_API_KEY : ${{ secrets.INFECTION_BADGE_API_KEY }}
232
+ STRYKER_DASHBOARD_API_KEY : ${{ secrets.STRYKER_DASHBOARD_API_KEY }}
233
+
234
+ - uses : actions/upload-artifact@v4
235
+ if : ${{ !cancelled() }}
236
+ with :
237
+ name : log.txt
238
+ path : log.txt
239
+ if-no-files-found : error
240
+
187
241
compatibility :
188
242
name : " Test Compatibility"
189
243
0 commit comments