-
-
Notifications
You must be signed in to change notification settings - Fork 0
131 lines (105 loc) · 4.51 KB
/
tests.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
name: Tests
on: [ pull_request ]
jobs:
sqlite:
runs-on: ubuntu-latest
strategy:
fail-fast: true
matrix:
php: [ "8.2", "8.3", "8.4" ]
laravel: [ "10.0", "11.0" ]
name: PHP ${{ matrix.php }}, Laravel ${{ matrix.laravel }}, SQLite
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
extensions: dom, curl, libxml, mbstring, zip, pcntl, pdo, sqlite, pdo_sqlite, gd, pdo_mysql, pdo_pgsql
coverage: xdebug
- name: Install dependencies
run: composer require laravel/framework:^${{ matrix.laravel }}
- name: Execute tests
run: vendor/bin/pest --group SQLite
mysql:
runs-on: ubuntu-latest
strategy:
fail-fast: true
matrix:
php: [ "8.2", "8.3", "8.4" ]
laravel: [ "10.0", "11.0" ]
mysql: [ "5.7", "8", "9" ]
name: PHP ${{ matrix.php }}, Laravel ${{ matrix.laravel }}, MySQL ${{ matrix.mysql }}
services:
mysql:
image: mysql:${{ matrix.mysql }}
env:
MYSQL_DATABASE: laravel
MYSQL_ROOT_PASSWORD: root
ports:
- 3306:3306
options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
extensions: dom, curl, libxml, mbstring, zip, pcntl, pdo, pdo_mysql, :php-psr
coverage: xdebug
- name: Install dependencies
uses: nick-fields/retry@v3
with:
timeout_minutes: 5
max_attempts: 5
command: composer require laravel/framework:^${{ matrix.laravel }}
- name: Execute tests
run: vendor/bin/pest --group MySQL
env:
DB_CONNECTION: mysql
DB_COLLATION: utf8mb4_unicode_ci
MYSQL_HOST: 127.0.0.1
postgres:
runs-on: ubuntu-latest
strategy:
fail-fast: true
matrix:
php: [ "8.2", "8.3", "8.4" ]
laravel: [ "10.0", "11.0" ]
psql: [ "12", "13", "14", "15", "16", "17" ]
name: PHP ${{ matrix.php }}, Laravel ${{ matrix.laravel }}, PostgreSQL ${{ matrix.psql }}
services:
postgres:
image: postgres:${{ matrix.psql }}
ports:
- 5432:5432
env:
POSTGRES_DB: laravel
POSTGRES_USER: root
POSTGRES_PASSWORD: root
options: --health-cmd="pg_isready" --health-interval=10s --health-timeout=5s --health-retries=3
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Fix for Postgres Client
run: |
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
sudo apt update
sudo apt install postgresql-client-${{ matrix.psql }} -y
pg_dump --version
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
extensions: dom, curl, libxml, mbstring, zip, pcntl, pdo, sqlite, pdo_sqlite, gd, pdo_mysql, pdo_pgsql
coverage: xdebug
- name: Install dependencies
run: composer require laravel/framework:^${{ matrix.laravel }}
- name: Execute tests
run: vendor/bin/pest --group Postgres
env:
DB_CONNECTION: pgsql
PGSQL_HOST: 127.0.0.1