@@ -2,11 +2,11 @@ name: CI
22
33on :
44 push :
5- branches : [ feature-*, develop, dev-*, master ]
5+ branches : [feature-*, develop, dev-*, master]
66 tags :
77 - ' *'
88 pull_request :
9- branches : [ feature-*, develop, dev-*, master ]
9+ branches : [feature-*, develop, dev-*, master]
1010
1111jobs :
1212 test :
6161 --health-retries=3
6262
6363 postgres :
64- image : postgres:15
64+ image : postgres:${{ matrix.db.version }}
6565 ports :
6666 - 5432:5432
6767 env :
7575 --health-retries=3
7676
7777 mssql :
78- image : mcr.microsoft.com/mssql/server:2022-latest
78+ image : mcr.microsoft.com/mssql/server:${{ matrix.db.version }}
7979 ports :
8080 - 1433:1433
8181 env :
@@ -92,66 +92,25 @@ jobs:
9292
9393 steps :
9494 - uses : actions/checkout@v4
95- - name : Set DB_DISPLAY_NAME
96- run : |
97- if [ "${{ matrix.db_engine }}" = "mysql" ] && [ "${{ matrix.mysql }}" != "" ]; then
98- echo "DB_DISPLAY_NAME=mysql ${{ matrix.mysql }}" >> $GITHUB_ENV
99- else
100- echo "DB_DISPLAY_NAME=${{ matrix.db_engine }}" >> $GITHUB_ENV
101- fi
10295
10396 - name : Set DB env variables
10497 run : |
105- if [ "${{ matrix.db_engine }}" = "mysql" ]; then
106- echo "DB_HOST=127.0.0.1" >> $GITHUB_ENV
107- echo "DB_PORT=3306" >> $GITHUB_ENV
108- echo "DB_USERNAME=root" >> $GITHUB_ENV
109- echo "DB_PASSWORD=" >> $GITHUB_ENV
110- echo "DB_DATABASE=testing" >> $GITHUB_ENV
111- elif [ "${{ matrix.db_engine }}" = "pgsql" ]; then
112- echo "DB_HOST=127.0.0.1" >> $GITHUB_ENV
113- echo "DB_PORT=5432" >> $GITHUB_ENV
114- echo "DB_USERNAME=postgres" >> $GITHUB_ENV
115- echo "DB_PASSWORD=" >> $GITHUB_ENV
116- echo "DB_DATABASE=testing" >> $GITHUB_ENV
117- elif [ "${{ matrix.db_engine }}" = "sqlsrv" ]; then
118- echo "DB_HOST=127.0.0.1" >> $GITHUB_ENV
119- echo "DB_PORT=1433" >> $GITHUB_ENV
120- echo "DB_USERNAME=SA" >> $GITHUB_ENV
121- echo "DB_PASSWORD=Passw0rd1234!" >> $GITHUB_ENV
122- echo "DB_DATABASE=testing" >> $GITHUB_ENV
123- fi
124-
125- - name : Set up PHP
126- uses : shivammathur/setup-php@v2
127- with :
128- php-version : ${{ matrix.php }}
129- extensions : mbstring, pdo_mysql, pdo_pgsql, pdo_sqlsrv, zip, exif, intl, gd, bcmath, curl, dom, xdebug
130- coverage : xdebug
131-
132- - name : Debug info
133- run : |
134- php -v
135- composer --version
136- mysql --version || true
137- psql --version || true
138- /opt/mssql-tools/bin/sqlcmd -? || true
98+ echo "DB_ENGINE=${{ matrix.db.engine }}" >> $GITHUB_ENV
99+ echo "DB_VERSION=${{ matrix.db.version }}" >> $GITHUB_ENV
139100
140- - name : Set DB env variables
141- run : |
142- if [[ "${{ matrix.db_engine }}" == "mysql" ]]; then
101+ if [[ "${{ matrix.db.engine }}" == "mysql" ]]; then
143102 echo "DB_HOST=127.0.0.1" >> $GITHUB_ENV
144103 echo "DB_PORT=3306" >> $GITHUB_ENV
145104 echo "DB_USERNAME=root" >> $GITHUB_ENV
146105 echo "DB_PASSWORD=" >> $GITHUB_ENV
147106 echo "DB_DATABASE=testing" >> $GITHUB_ENV
148- elif [[ "${{ matrix.db_engine }}" == "pgsql" ]]; then
107+ elif [[ "${{ matrix.db.engine }}" == "pgsql" ]]; then
149108 echo "DB_HOST=127.0.0.1" >> $GITHUB_ENV
150109 echo "DB_PORT=5432" >> $GITHUB_ENV
151110 echo "DB_USERNAME=postgres" >> $GITHUB_ENV
152111 echo "DB_PASSWORD=" >> $GITHUB_ENV
153112 echo "DB_DATABASE=testing" >> $GITHUB_ENV
154- elif [[ "${{ matrix.db_engine }}" == "sqlsrv" ]]; then
113+ elif [[ "${{ matrix.db.engine }}" == "sqlsrv" ]]; then
155114 echo "DB_HOST=127.0.0.1" >> $GITHUB_ENV
156115 echo "DB_PORT=1433" >> $GITHUB_ENV
157116 echo "DB_USERNAME=SA" >> $GITHUB_ENV
@@ -161,7 +120,7 @@ jobs:
161120
162121 - name : Wait for DB service
163122 run : |
164- if [[ "${{ matrix.db_engine }}" == "mysql" ]]; then
123+ if [[ "${{ matrix.db.engine }}" == "mysql" ]]; then
165124 for i in {30..0}; do
166125 if mysqladmin ping -h 127.0.0.1 --silent; then
167126 echo "MySQL is ready"
@@ -170,7 +129,7 @@ jobs:
170129 echo "Waiting for MySQL ($i)..."
171130 sleep 1
172131 done
173- elif [[ "${{ matrix.db_engine }}" == "pgsql" ]]; then
132+ elif [[ "${{ matrix.db.engine }}" == "pgsql" ]]; then
174133 for i in {30..0}; do
175134 if pg_isready -h 127.0.0.1 -U postgres; then
176135 echo "Postgres is ready"
@@ -179,12 +138,26 @@ jobs:
179138 echo "Waiting for Postgres ($i)..."
180139 sleep 1
181140 done
182- elif [[ "${{ matrix.db_engine }}" == "sqlsrv" ]]; then
183- # MSSQL health check not straightforward, wait fixed time
141+ elif [[ "${{ matrix.db.engine }}" == "sqlsrv" ]]; then
184142 echo "Waiting 30 seconds for MSSQL to start..."
185143 sleep 30
186144 fi
187145
146+ - name : Set up PHP
147+ uses : shivammathur/setup-php@v2
148+ with :
149+ php-version : ${{ matrix.php }}
150+ extensions : mbstring, pdo_mysql, pdo_pgsql, pdo_sqlsrv, zip, exif, intl, gd, bcmath, curl, dom, xdebug
151+ coverage : xdebug
152+
153+ - name : Debug info
154+ run : |
155+ php -v
156+ composer --version
157+ mysql --version || true
158+ psql --version || true
159+ /opt/mssql-tools/bin/sqlcmd -? || true
160+
188161 - name : Adjust Laravel/Testbench version per matrix
189162 run : |
190163 composer remove laravel/framework orchestra/testbench --no-update || true
@@ -210,5 +183,3 @@ jobs:
210183 with :
211184 token : ${{ secrets.QLTY_COVERAGE_TOKEN }}
212185 files : coverage/clover.xml
213-
214-
0 commit comments