forked from interactivetools-com/ZenDB
-
Notifications
You must be signed in to change notification settings - Fork 0
92 lines (83 loc) · 2.72 KB
/
Copy pathtests.yml
File metadata and controls
92 lines (83 loc) · 2.72 KB
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
name: Tests
on:
push:
branches: [main, dev]
pull_request:
branches: [main]
workflow_dispatch:
inputs:
php:
description: 'PHP version (blank = all)'
required: false
type: choice
options: ['', '8.1', '8.2', '8.3', '8.4', '8.5']
database:
description: 'Database (blank = all)'
required: false
type: choice
options:
- ''
- mysql:5.7
- mysql:8.0
- mysql:8.4
- mysql:9.6
- mariadb:10.2
- mariadb:10.4
- mariadb:10.5
- mariadb:10.6
- mariadb:10.11
- mariadb:11.4
- mariadb:11.8
- percona/percona-server:5.7
- percona/percona-server:8.0
- percona/percona-server:8.4
jobs:
test:
name: PHP ${{ matrix.php }} / ${{ matrix.database }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
php: ${{ inputs.php && fromJSON(format('["{0}"]', inputs.php)) || fromJSON('["8.1","8.2","8.3","8.4","8.5"]') }}
database: ${{ inputs.database && fromJSON(format('["{0}"]', inputs.database)) || fromJSON('["mysql:5.7","mysql:8.0","mysql:8.4","mysql:9.6","mariadb:10.2","mariadb:10.4","mariadb:10.5","mariadb:10.6","mariadb:10.11","mariadb:11.4","mariadb:11.8","percona/percona-server:5.7","percona/percona-server:8.0","percona/percona-server:8.4"]') }}
services:
database:
image: ${{ matrix.database }}
env:
MYSQL_ALLOW_EMPTY_PASSWORD: yes
MYSQL_ROOT_HOST: '%'
# MariaDB-specific (ignored by MySQL)
MARIADB_ALLOW_EMPTY_ROOT_PASSWORD: yes
MARIADB_ROOT_HOST: '%'
ports:
- 3306:3306
options: >-
--health-cmd="healthcheck.sh --innodb_initialized || mysqladmin ping -h 127.0.0.1 --silent"
--health-interval=10s
--health-timeout=5s
--health-retries=5
--security-opt seccomp=unconfined
steps:
- name: Checkout
uses: actions/checkout@v5
- name: Setup PHP ${{ matrix.php }}
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
extensions: mysqli, openssl, mbstring
coverage: none
- name: Install dependencies
run: composer install --no-interaction --prefer-dist
- name: Wait for database
run: |
for i in $(seq 1 30); do
mysqladmin ping -h 127.0.0.1 -u root --silent 2>/dev/null && break
sleep 1
done
- name: Run tests
run: vendor/bin/phpunit --colors=always
env:
DB_HOSTNAME: 127.0.0.1
DB_USERNAME: root
DB_PASSWORD: ''
DB_DATABASE: phpunit_test_db