@@ -10,28 +10,37 @@ jobs:
10
10
matrix :
11
11
php : [8.0, 7.4]
12
12
laravel : [8.*, 7.*]
13
+ db : [mysql, postgres, sqlite]
13
14
dependency-version : [prefer-lowest, prefer-stable]
14
15
include :
15
16
- laravel : 8.*
16
17
testbench : 6.*
17
18
- laravel : 7.*
18
19
testbench : 5.*
19
20
20
- name : P${{ matrix.php }} - L${{ matrix.laravel }} - ${{ matrix.dependency-version }}
21
+ name : P${{ matrix.php }} - L${{ matrix.laravel }} - DB ${{ matrix.db }} - ${{ matrix.dependency-version }}
21
22
22
23
services :
23
24
mysql :
24
25
image : mysql:5.7
25
26
env :
26
27
MYSQL_ALLOW_EMPTY_PASSWORD : no
27
28
MYSQL_USER : protone_media_db_test
28
- MYSQL_DATABASE : protone_media_db_test
29
+ MYSQL_DATABASE : protone_media_db_test_mysql
29
30
MYSQL_PASSWORD : secret
30
31
MYSQL_ROOT_PASSWORD : secret
31
32
ports :
32
33
- 3306
33
34
options : --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3
34
-
35
+ postgres :
36
+ image : postgres:10.8
37
+ env :
38
+ POSTGRES_USER : protone_media_db_test
39
+ POSTGRES_PASSWORD : secret
40
+ POSTGRES_DB : protone_media_db_test_postgres
41
+ ports :
42
+ - 5432:5432
43
+ options : --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
35
44
36
45
steps :
37
46
- name : Checkout code
@@ -55,10 +64,28 @@ jobs:
55
64
composer require "laravel/framework:${{ matrix.laravel }}" "orchestra/testbench:${{ matrix.testbench }}" --no-interaction --no-update
56
65
composer update --${{ matrix.dependency-version }} --prefer-dist --no-interaction --no-suggest
57
66
58
- - name : Execute tests
67
+ - name : Execute tests (MySQL)
59
68
run : vendor/bin/phpunit
69
+ if : ${{ matrix.db == 'mysql' }}
60
70
env :
61
- DB_DATABASE : protone_media_db_test
71
+ DB_DATABASE : protone_media_db_test_mysql
62
72
DB_USERNAME : protone_media_db_test
63
73
DB_PASSWORD : secret
64
- DB_PORT : ${{ job.services.mysql.ports[3306] }}
74
+ DB_PORT : ${{ job.services.mysql.ports[3306] }}
75
+
76
+ - name : Execute tests (PostgreSQL)
77
+ run : vendor/bin/phpunit
78
+ if : ${{ matrix.db == 'postgres' }}
79
+ env :
80
+ DB_CONNECTION : pgsql
81
+ DB_DATABASE : protone_media_db_test_postgres
82
+ DB_USERNAME : protone_media_db_test
83
+ DB_PASSWORD : secret
84
+ DB_PORT : ${{ job.services.postgres.ports[5432] }}
85
+
86
+ - name : Execute tests (SQLite)
87
+ run : vendor/bin/phpunit
88
+ if : ${{ matrix.db == 'sqlite' }}
89
+ env :
90
+ DB_CONNECTION : sqlite
91
+ DB_DATABASE : ' :memory:'
0 commit comments