@@ -40,12 +40,86 @@ jobs:
4040 - name : Setup PHP
4141 uses : shivammathur/setup-php@v2
4242 with :
43- php-version : ' 8.3'
43+ php-version : ' 8.4'
44+
45+ - name : Cache Composer dependencies
46+ uses : actions/cache@v4
47+ with :
48+ path : vendor
49+ key : composer-${{ runner.os }}-${{ hashFiles('**/composer.lock') }}
50+ restore-keys : |
51+ composer-${{ runner.os }}-
52+
53+ - name : Cache NPM dependencies
54+ uses : actions/cache@v4
55+ with :
56+ path : ~/.npm
57+ key : npm-${{ runner.os }}-${{ hashFiles('**/package-lock.json') }}
58+ restore-keys : |
59+ npm-${{ runner.os }}-
4460
4561 - name : Install Dependencies
4662 run : |
47- composer install -q --no-ansi --no-interaction --no-scripts --no-progress --prefer-dist
48- npm ci && npm run build
63+ composer install -q --no-ansi --no-interaction --no-scripts --no-progress --prefer-dist --classmap-authoritative
64+ npm ci --no-audit && npm run build
65+
66+ - name : Copy Environment File
67+ run : cp .env.ci .env
68+
69+ - name : Generate App Key
70+ run : php artisan key:generate --quiet
71+
72+ - name : Run Tests
73+ run : php artisan test
74+ env :
75+ DB_CONNECTION : mysql
76+ DB_HOST : 127.0.0.1
77+ DB_PORT : 3306
78+ DB_DATABASE : testing
79+ DB_USERNAME : root
80+ DB_PASSWORD : password
81+
82+ test-mariadb-12 :
83+ needs : lint-app
84+ runs-on : ubuntu-24.04
85+ services :
86+ mariadb :
87+ image : mariadb:12
88+ env :
89+ MARIADB_ROOT_PASSWORD : password
90+ MARIADB_DATABASE : testing
91+ ports :
92+ - 3306:3306
93+ options : --health-cmd="healthcheck.sh --connect --innodb_initialized" --health-interval=10s --health-timeout=5s --health-retries=3
94+ steps :
95+ - name : Checkout
96+ uses : actions/checkout@v5
97+
98+ - name : Setup PHP
99+ uses : shivammathur/setup-php@v2
100+ with :
101+ php-version : ' 8.4'
102+
103+ - name : Cache Composer dependencies
104+ uses : actions/cache@v4
105+ with :
106+ path : vendor
107+ key : composer-${{ runner.os }}-${{ hashFiles('**/composer.lock') }}
108+ restore-keys : |
109+ composer-${{ runner.os }}-
110+
111+ - name : Cache NPM dependencies
112+ uses : actions/cache@v4
113+ with :
114+ path : ~/.npm
115+ key : npm-${{ runner.os }}-${{ hashFiles('**/package-lock.json') }}
116+ restore-keys : |
117+ npm-${{ runner.os }}-
118+
119+ - name : Install Dependencies
120+ run : |
121+ composer install -q --no-ansi --no-interaction --no-scripts --no-progress --prefer-dist --classmap-authoritative
122+ npm ci --no-audit && npm run build
49123
50124 - name : Copy Environment File
51125 run : cp .env.ci .env
@@ -82,12 +156,28 @@ jobs:
82156 - name : Setup PHP
83157 uses : shivammathur/setup-php@v2
84158 with :
85- php-version : ' 8.3'
159+ php-version : ' 8.4'
160+
161+ - name : Cache Composer dependencies
162+ uses : actions/cache@v4
163+ with :
164+ path : vendor
165+ key : composer-${{ runner.os }}-${{ hashFiles('**/composer.lock') }}
166+ restore-keys : |
167+ composer-${{ runner.os }}-
168+
169+ - name : Cache NPM dependencies
170+ uses : actions/cache@v4
171+ with :
172+ path : ~/.npm
173+ key : npm-${{ runner.os }}-${{ hashFiles('**/package-lock.json') }}
174+ restore-keys : |
175+ npm-${{ runner.os }}-
86176
87177 - name : Install Dependencies
88178 run : |
89- composer install -q --no-ansi --no-interaction --no-scripts --no-progress --prefer-dist
90- npm ci && npm run build
179+ composer install -q --no-ansi --no-interaction --no-scripts --no-progress --prefer-dist --classmap-authoritative
180+ npm ci --no-audit && npm run build
91181
92182 - name : Copy Environment File
93183 run : cp .env.ci .env
@@ -124,12 +214,28 @@ jobs:
124214 - name : Setup PHP
125215 uses : shivammathur/setup-php@v2
126216 with :
127- php-version : ' 8.3'
217+ php-version : ' 8.4'
218+
219+ - name : Cache Composer dependencies
220+ uses : actions/cache@v4
221+ with :
222+ path : vendor
223+ key : composer-${{ runner.os }}-${{ hashFiles('**/composer.lock') }}
224+ restore-keys : |
225+ composer-${{ runner.os }}-
226+
227+ - name : Cache NPM dependencies
228+ uses : actions/cache@v4
229+ with :
230+ path : ~/.npm
231+ key : npm-${{ runner.os }}-${{ hashFiles('**/package-lock.json') }}
232+ restore-keys : |
233+ npm-${{ runner.os }}-
128234
129235 - name : Install Dependencies
130236 run : |
131- composer install -q --no-ansi --no-interaction --no-scripts --no-progress --prefer-dist
132- npm ci && npm run build
237+ composer install -q --no-ansi --no-interaction --no-scripts --no-progress --prefer-dist --classmap-authoritative
238+ npm ci --no-audit && npm run build
133239
134240 - name : Copy Environment File
135241 run : cp .env.ci .env
@@ -166,12 +272,28 @@ jobs:
166272 - name : Setup PHP
167273 uses : shivammathur/setup-php@v2
168274 with :
169- php-version : ' 8.3'
275+ php-version : ' 8.4'
276+
277+ - name : Cache Composer dependencies
278+ uses : actions/cache@v4
279+ with :
280+ path : vendor
281+ key : composer-${{ runner.os }}-${{ hashFiles('**/composer.lock') }}
282+ restore-keys : |
283+ composer-${{ runner.os }}-
284+
285+ - name : Cache NPM dependencies
286+ uses : actions/cache@v4
287+ with :
288+ path : ~/.npm
289+ key : npm-${{ runner.os }}-${{ hashFiles('**/package-lock.json') }}
290+ restore-keys : |
291+ npm-${{ runner.os }}-
170292
171293 - name : Install Dependencies
172294 run : |
173- composer install -q --no-ansi --no-interaction --no-scripts --no-progress --prefer-dist
174- npm ci && npm run build
295+ composer install -q --no-ansi --no-interaction --no-scripts --no-progress --prefer-dist --classmap-authoritative
296+ npm ci --no-audit && npm run build
175297
176298 - name : Copy Environment File
177299 run : cp .env.ci .env
@@ -208,12 +330,86 @@ jobs:
208330 - name : Setup PHP
209331 uses : shivammathur/setup-php@v2
210332 with :
211- php-version : ' 8.3'
333+ php-version : ' 8.4'
334+
335+ - name : Cache Composer dependencies
336+ uses : actions/cache@v4
337+ with :
338+ path : vendor
339+ key : composer-${{ runner.os }}-${{ hashFiles('**/composer.lock') }}
340+ restore-keys : |
341+ composer-${{ runner.os }}-
342+
343+ - name : Cache NPM dependencies
344+ uses : actions/cache@v4
345+ with :
346+ path : ~/.npm
347+ key : npm-${{ runner.os }}-${{ hashFiles('**/package-lock.json') }}
348+ restore-keys : |
349+ npm-${{ runner.os }}-
212350
213351 - name : Install Dependencies
214352 run : |
215- composer install -q --no-ansi --no-interaction --no-scripts --no-progress --prefer-dist
216- npm ci && npm run build
353+ composer install -q --no-ansi --no-interaction --no-scripts --no-progress --prefer-dist --classmap-authoritative
354+ npm ci --no-audit && npm run build
355+
356+ - name : Copy Environment File
357+ run : cp .env.ci .env
358+
359+ - name : Generate App Key
360+ run : php artisan key:generate --quiet
361+
362+ - name : Run Tests
363+ run : php artisan test
364+ env :
365+ DB_CONNECTION : pgsql
366+ DB_HOST : 127.0.0.1
367+ DB_PORT : 5432
368+ DB_DATABASE : testing
369+ DB_USERNAME : postgres
370+ DB_PASSWORD : password
371+
372+ test-postgres-18 :
373+ needs : lint-app
374+ runs-on : ubuntu-24.04
375+ services :
376+ postgres :
377+ image : postgres:18
378+ env :
379+ POSTGRES_PASSWORD : password
380+ POSTGRES_DB : testing
381+ ports :
382+ - 5432:5432
383+ options : --health-cmd="pg_isready -U postgres" --health-interval=10s --health-timeout=5s --health-retries=3
384+ steps :
385+ - name : Checkout
386+ uses : actions/checkout@v5
387+
388+ - name : Setup PHP
389+ uses : shivammathur/setup-php@v2
390+ with :
391+ php-version : ' 8.4'
392+
393+ - name : Cache Composer dependencies
394+ uses : actions/cache@v4
395+ with :
396+ path : vendor
397+ key : composer-${{ runner.os }}-${{ hashFiles('**/composer.lock') }}
398+ restore-keys : |
399+ composer-${{ runner.os }}-
400+
401+ - name : Cache NPM dependencies
402+ uses : actions/cache@v4
403+ with :
404+ path : ~/.npm
405+ key : npm-${{ runner.os }}-${{ hashFiles('**/package-lock.json') }}
406+ restore-keys : |
407+ npm-${{ runner.os }}-
408+
409+ - name : Install Dependencies
410+ run : |
411+ composer install -q --no-ansi --no-interaction --no-scripts --no-progress --prefer-dist --classmap-authoritative
412+ npm ci --no-audit && npm run build
217413
218414 - name : Copy Environment File
219415 run : cp .env.ci .env
@@ -241,16 +437,32 @@ jobs:
241437 - name : Setup PHP
242438 uses : shivammathur/setup-php@v2
243439 with :
244- php-version : ' 8.3'
440+ php-version : ' 8.4'
441+
442+ - name : Cache Composer dependencies
443+ uses : actions/cache@v4
444+ with :
445+ path : vendor
446+ key : composer-${{ runner.os }}-${{ hashFiles('**/composer.lock') }}
447+ restore-keys : |
448+ composer-${{ runner.os }}-
449+
450+ - name : Cache NPM dependencies
451+ uses : actions/cache@v4
452+ with :
453+ path : ~/.npm
454+ key : npm-${{ runner.os }}-${{ hashFiles('**/package-lock.json') }}
455+ restore-keys : |
456+ npm-${{ runner.os }}-
245457
246458 - name : Create SQLite Database
247459 run : |
248460 touch database/database.sqlite
249461
250462 - name : Install Dependencies
251463 run : |
252- composer install -q --no-ansi --no-interaction --no-scripts --no-progress --prefer-dist
253- npm ci && npm run build
464+ composer install -q --no-ansi --no-interaction --no-scripts --no-progress --prefer-dist --classmap-authoritative
465+ npm ci --no-audit && npm run build
254466
255467 - name : Copy Environment File
256468 run : cp .env.ci .env
0 commit comments