62
62
needs : access_check
63
63
strategy :
64
64
matrix :
65
- db : [ 'mysql', 'pgsql' ]
65
+ db :
66
+ - { driver: 'mysql', version: '8.0' }
67
+ - { driver: 'mysql', version: '8.4' }
68
+ - { driver: 'pgsql', version: '14' }
69
+ - { driver: 'pgsql', version: '15' }
70
+ - { driver: 'pgsql', version: '16' }
71
+ - { driver: 'pgsql', version: '17' }
66
72
payload :
67
73
- { queue: 'github-actions-laravel11-php82', laravel: '11.*', php: '8.2', 'testbench': '9.*' }
68
74
- { queue: 'github-actions-laravel11-php83', laravel: '11.*', php: '8.3', 'testbench': '9.*' }
71
77
- { queue: 'github-actions-laravel12-php83', laravel: '12.*', php: '8.3', 'testbench': '10.*' }
72
78
- { queue: 'github-actions-laravel12-php84', laravel: '12.*', php: '8.4', 'testbench': '10.*' }
73
79
74
- name : PHP ${{ matrix.payload.php }} - Laravel ${{ matrix.payload.laravel }} - DB ${{ matrix.db }}
80
+ name : PHP ${{ matrix.payload.php }} - Laravel ${{ matrix.payload.laravel }} - DB ${{ matrix.db.driver }} ${{ matrix.db.version }}
75
81
76
82
steps :
77
83
- name : Checkout code
@@ -91,12 +97,16 @@ jobs:
91
97
CI_SERVICE_ACCOUNT_JSON_KEY : ${{ secrets.CI_SERVICE_ACCOUNT_JSON_KEY }}
92
98
run : |
93
99
touch .env
94
- MYSQL_PORT=3307 POSTGRES_PORT=5432 docker compose up ${{ matrix.db }} -d
100
+ if [ "${{ matrix.db }}" = "mysql" ]; then
101
+ MYSQL_PORT=3307 MYSQL_VERSION=${{ matrix.db.version }} docker compose up ${{ matrix.db.driver }} -d
102
+ elif [ "${DB}" = "pgsql" ]; then
103
+ POSTGRES_PORT=5432 PGSQL_VERSION=${{ matrix.db.version }} docker compose up ${{ matrix.db.driver }} -d
104
+ fi
95
105
- name : Install dependencies
96
106
run : |
97
107
composer require "laravel/framework:${{ matrix.payload.laravel }}" "orchestra/testbench:${{ matrix.payload.testbench }}" --no-interaction --no-update
98
108
composer update --prefer-stable --prefer-dist --no-interaction
99
- if [ "${{ matrix.db }}" = "mysql" ]; then
109
+ if [ "${{ matrix.db.driver }}" = "mysql" ]; then
100
110
while ! mysqladmin ping --host=127.0.0.1 --user=cloudtasks --port=3307 --password=cloudtasks --silent; do
101
111
echo "Waiting for MySQL..."
102
112
sleep 1
@@ -106,7 +116,7 @@ jobs:
106
116
fi
107
117
- name : Execute tests
108
118
env :
109
- DB_DRIVER : ${{ matrix.db }}
119
+ DB_DRIVER : ${{ matrix.db.driver }}
110
120
DB_HOST : 127.0.0.1
111
121
CI_CLOUD_TASKS_PROJECT_ID : ${{ secrets.CI_CLOUD_TASKS_PROJECT_ID }}
112
122
CI_CLOUD_TASKS_QUEUE : ${{ secrets.CI_CLOUD_TASKS_QUEUE }}
0 commit comments