77
88jobs :
99 php-tests :
10- runs-on : ${{ matrix.os }}
10+ runs-on : ubuntu-latest
1111
1212 strategy :
1313 matrix :
14- php : [8.1, 8.0, 7.4, 7.3, 7.2]
15- laravel : [9.*, 8.*, 7.*, 6.*, 5.8.*, 5.7.*, 5.6.*]
16- os : [ubuntu-latest]
17- include :
18- - laravel : 9.*
19- testbench : 7.*
20- - laravel : 8.*
21- testbench : 6.*
22- - laravel : 7.*
23- testbench : 5.*
24- - laravel : 6.*
25- testbench : 4.*
26- - laravel : 5.8.*
27- testbench : 3.8.*
28- - laravel : 5.7.*
29- testbench : 3.7.*
30- - laravel : 5.6.*
31- testbench : 3.6.*
32- exclude :
33- - laravel : 9.*
34- php : 7.2
35- - laravel : 9.*
36- php : 7.3
37- - laravel : 9.*
38- php : 7.4
39- - laravel : 8.*
40- php : 7.2
41- - laravel : 5.8.*
42- php : 8.0
43- - laravel : 5.7.*
44- php : 8.0
45- - laravel : 5.6.*
46- php : 8.0
47- - laravel : 5.6.*
48- php : 8.1
49- - laravel : 5.7.*
50- php : 8.1
51- - laravel : 5.8.*
52- php : 8.1
53- - laravel : 6.*
54- php : 8.1
55- - laravel : 7.*
56- php : 8.1
14+ db : ['mysql', 'pgsql']
15+ payload :
16+ - { queue: 'github-actions-laravel9-php81', laravel: '9.*', php: '8.1', 'testbench': '7.*'}
17+ - { queue: 'github-actions-laravel9-php80', laravel: '9.*', php: '8.0', 'testbench': '7.*'}
18+ - { queue: 'github-actions-laravel8-php81', laravel: '8.*', php: '8.1', 'testbench': '6.*'}
19+ - { queue: 'github-actions-laravel8-php80', laravel: '8.*', php: '8.0', 'testbench': '6.*'}
20+ - { queue: 'github-actions-laravel8-php74', laravel: '8.*', php: '7.4', 'testbench': '6.*'}
21+ - { queue: 'github-actions-laravel7-php80', laravel: '7.*', php: '8.0', 'testbench': '5.*' }
22+ - { queue: 'github-actions-laravel7-php74', laravel: '7.*', php: '7.4', 'testbench': '5.*' }
23+ - { queue: 'github-actions-laravel6-php80', laravel: '6.*', php: '8.0', 'testbench': '4.*' }
24+ - { queue: 'github-actions-laravel6-php74', laravel: '6.*', php: '7.4', 'testbench': '4.*' }
5725
58- name : PHP ${{ matrix.php }} - Laravel ${{ matrix.laravel }}
26+ name : PHP ${{ matrix.payload. php }} - Laravel ${{ matrix.payload. laravel }} - DB ${{ matrix.db }}
5927
6028 steps :
6129 - name : Checkout code
@@ -64,13 +32,34 @@ jobs:
6432 - name : Setup PHP
6533 uses : shivammathur/setup-php@v2
6634 with :
67- php-version : ${{ matrix.php }}
35+ php-version : ${{ matrix.payload. php }}
6836 extensions : mbstring, dom, fileinfo
6937 coverage : none
7038
39+ - name : Set up MySQL and PostgreSQL
40+ run : |
41+ MYSQL_PORT=3307 POSTGRES_PORT=5432 docker compose up ${{ matrix.db }} -d
7142 - name : Install dependencies
7243 run : |
73- composer require "laravel/framework:${{ matrix.laravel }}" "orchestra/testbench:${{ matrix.testbench }}" --no-interaction --no-update
44+ composer require "laravel/framework:${{ matrix.payload. laravel }}" "orchestra/testbench:${{ matrix.payload .testbench }}" --no-interaction --no-update
7445 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
7554 - name : Execute tests
76- run : vendor/bin/phpunit
55+ env :
56+ DB_DRIVER : ${{ matrix.db }}
57+ CI_CLOUD_TASKS_PROJECT_ID : ${{ secrets.CI_CLOUD_TASKS_PROJECT_ID }}
58+ CI_CLOUD_TASKS_QUEUE : ${{ secrets.CI_CLOUD_TASKS_QUEUE }}
59+ CI_CLOUD_TASKS_LOCATION : ${{ secrets.CI_CLOUD_TASKS_LOCATION }}
60+ CI_CLOUD_TASKS_SERVICE_ACCOUNT_EMAIL : ${{ secrets.CI_CLOUD_TASKS_SERVICE_ACCOUNT_EMAIL }}
61+ CI_SERVICE_ACCOUNT_JSON_KEY : ${{ secrets.CI_SERVICE_ACCOUNT_JSON_KEY }}
62+ CI_CLOUD_TASKS_CUSTOM_QUEUE : ${{ matrix.payload.queue }}
63+ run : |
64+ echo $CI_SERVICE_ACCOUNT_JSON_KEY > tests/Support/gcloud-key-valid.json
65+ vendor/bin/phpunit
0 commit comments