1111
1212 strategy :
1313 matrix :
14+ db : ['mysql', 'pgsql']
1415 payload :
1516 - { queue: 'github-actions-laravel9-php81', laravel: '9.*', php: '8.1', 'testbench': '7.*'}
1617 - { queue: 'github-actions-laravel9-php80', laravel: '9.*', php: '8.0', 'testbench': '7.*'}
2223 - { queue: 'github-actions-laravel6-php80', laravel: '6.*', php: '8.0', 'testbench': '4.*' }
2324 - { queue: 'github-actions-laravel6-php74', laravel: '6.*', php: '7.4', 'testbench': '4.*' }
2425
25- name : PHP ${{ matrix.payload.php }} - Laravel ${{ matrix.payload.laravel }}
26+ name : PHP ${{ matrix.payload.php }} - Laravel ${{ matrix.payload.laravel }} - DB ${{ matrix.db }}
2627
2728 steps :
2829 - name : Checkout code
@@ -35,23 +36,24 @@ jobs:
3536 extensions : mbstring, dom, fileinfo
3637 coverage : none
3738
38- - name : Set up MySQL
39+ - name : Set up MySQL and PostgreSQL
3940 run : |
40- sudo /etc/init.d/mysql start
41- mysql -e 'CREATE DATABASE test;' -uroot -proot
42-
41+ MYSQL_PORT=3307 POSTGRES_PORT=5432 docker compose up ${{ matrix.db }} -d
4342 - name : Install dependencies
4443 run : |
4544 composer require "laravel/framework:${{ matrix.payload.laravel }}" "orchestra/testbench:${{ matrix.payload.testbench }}" --no-interaction --no-update
4645 composer update --prefer-stable --prefer-dist --no-interaction --no-suggest
46+ if [ "${{ matrix.db }}" = "mysql" ]; then
47+ while ! mysqladmin ping --host=127.0.0.1 --user=cloudtasks --port=3307 --password=cloudtasks --silent; do
48+ echo "Waiting for MySQL..."
49+ sleep 1
50+ done
51+ else
52+ echo "Not waiting for MySQL."
53+ fi
4754 - name : Execute tests
4855 env :
49- CI_DB_DRIVER : mysql
50- CI_DB_HOST : 127.0.0.1
51- CI_DB_PORT : 3306
52- CI_DB_DATABASE : test
53- CI_DB_USERNAME : root
54- CI_DB_PASSWORD : root
56+ DB_DRIVER : ${{ matrix.db }}
5557 CI_CLOUD_TASKS_PROJECT_ID : ${{ secrets.CI_CLOUD_TASKS_PROJECT_ID }}
5658 CI_CLOUD_TASKS_QUEUE : ${{ secrets.CI_CLOUD_TASKS_QUEUE }}
5759 CI_CLOUD_TASKS_LOCATION : ${{ secrets.CI_CLOUD_TASKS_LOCATION }}
0 commit comments