7
7
8
8
jobs :
9
9
php-tests :
10
- runs-on : ${{ matrix.os }}
10
+ runs-on : ubuntu-latest
11
11
12
12
strategy :
13
13
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.*' }
57
25
58
- name : PHP ${{ matrix.php }} - Laravel ${{ matrix.laravel }}
26
+ name : PHP ${{ matrix.payload. php }} - Laravel ${{ matrix.payload. laravel }} - DB ${{ matrix.db }}
59
27
60
28
steps :
61
29
- name : Checkout code
@@ -64,13 +32,34 @@ jobs:
64
32
- name : Setup PHP
65
33
uses : shivammathur/setup-php@v2
66
34
with :
67
- php-version : ${{ matrix.php }}
35
+ php-version : ${{ matrix.payload. php }}
68
36
extensions : mbstring, dom, fileinfo
69
37
coverage : none
70
38
39
+ - name : Set up MySQL and PostgreSQL
40
+ run : |
41
+ MYSQL_PORT=3307 POSTGRES_PORT=5432 docker compose up ${{ matrix.db }} -d
71
42
- name : Install dependencies
72
43
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
74
45
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
75
54
- 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