Skip to content

Commit d3e2114

Browse files
authored
Added PHP 8 support; dropped Travis and Coveralls; use Github Actions from now on (#145)
* travis: added PHP nightly (8.0) to jobs * travis file: fixed some warnings; removed logging in phpunit.xml * added coveralls as dependency to composer; run coverage only on 1 job before this change, each phpunit run generated a coverage report, which is time consuming and not neccessary. now it should be faster because the report is only generated once. extended composer.json with script section for commands run in Travis. * travis: allow failures for PHP:nightly * travis: added missing composer update call * travis: added missing DB and DB_ADAPTER constants to coverage entries * added a third job to complete coverage analysis (for cache enabled) * composer: removed version constraint for PHP CS fixer * simplified Docker setup * only CLI, no Apache webserver anymore * default is PHP 8.0 * corrected outdated test db name * docker/docker-compose.yml-dist: updated db > environment > MYSQL_DATABASE * travis.yml: Dont allow failures anymore, when running PHP 8 * introducing github workflows: first steps * removed coveralls dependency * removed personal path in docker-compose.yml-dist * workflow: added DB install and init script; fixed PHPUnit path * fixed path to install-and-init-db.sh * named workflow by DB name+ver; removed travis.yml; adaptions * allow usage of PORT and HOST in db config * fixed DB_PORT usage * checko $_ENV in test run * more output, less actions * try to get DB_PORT from $_SERVER * fixed failing test in mysqliAdapterTest it fails because it didnt use the dynamic port from DB_PORT yet. * mysql-5.7.yml: extended to test for PHP 7.2 - 8.0 * added workflows for MariaDB 10.1 - 10.5
1 parent 65238a4 commit d3e2114

23 files changed

Lines changed: 563 additions & 305 deletions

.coveralls.yml

Lines changed: 0 additions & 3 deletions
This file was deleted.

.github/workflows/mariadb-10.1.yml

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
name: MariaDB 10.1 Tests
2+
3+
on: push
4+
5+
jobs:
6+
test:
7+
name: |
8+
MariaDB 10.1 Tests - PHP ${{ matrix.php-versions }}
9+
${{ matrix.DB_ADAPTER }}
10+
${{ matrix.DB_PDO_PROTOCOL }}
11+
runs-on: ubuntu-latest
12+
13+
strategy:
14+
# if one of the matrix-entries break, all entries getting canceled.
15+
fail-fast: true
16+
matrix:
17+
include:
18+
# PHP 7.2
19+
- php-versions: 7.2
20+
DB_ADAPTER: mysqli
21+
- php-versions: 7.2
22+
DB_ADAPTER: pdo
23+
DB_PDO_PROTOCOL: mysql
24+
- php-versions: 7.2
25+
DB_ADAPTER: pdo
26+
DB_PDO_PROTOCOL: mysql
27+
CACHE_ENABLED: true
28+
# PHP 7.3
29+
- php-versions: 7.3
30+
DB_ADAPTER: mysqli
31+
- php-versions: 7.3
32+
DB_ADAPTER: pdo
33+
DB_PDO_PROTOCOL: mysql
34+
- php-versions: 7.3
35+
DB_ADAPTER: pdo
36+
DB_PDO_PROTOCOL: mysql
37+
CACHE_ENABLED: true
38+
# PHP 7.4
39+
- php-versions: 7.4
40+
DB_ADAPTER: mysqli
41+
- php-versions: 7.4
42+
DB_ADAPTER: pdo
43+
DB_PDO_PROTOCOL: mysql
44+
- php-versions: 7.4
45+
DB_ADAPTER: pdo
46+
DB_PDO_PROTOCOL: mysql
47+
CACHE_ENABLED: true
48+
# PHP 8.0
49+
- php-versions: 8.0
50+
DB_ADAPTER: mysqli
51+
- php-versions: 8.0
52+
DB_ADAPTER: pdo
53+
DB_PDO_PROTOCOL: mysql
54+
- php-versions: 8.0
55+
DB_ADAPTER: pdo
56+
DB_PDO_PROTOCOL: mysql
57+
CACHE_ENABLED: true
58+
59+
services:
60+
testdb:
61+
image: mariadb:10.1
62+
env:
63+
MYSQL_ROOT_PASSWORD: Pass123
64+
MYSQL_DATABASE: arc2_test
65+
MYSQL_ALLOW_EMPTY_PASSWORD: false
66+
ports:
67+
- 3306
68+
options: --health-cmd="mysqladmin ping" --health-interval=15s --health-timeout=3s --health-retries=4
69+
70+
steps:
71+
- name: Checkout
72+
uses: actions/checkout@v2
73+
74+
- name: Install PHP
75+
uses: shivammathur/setup-php@v2
76+
with:
77+
php-version: ${{ matrix.php-versions }}
78+
coverage: xdebug
79+
ini-values: memory_limit=1G
80+
81+
- name: Install Composer dependencies
82+
run: composer install --no-progress --no-suggest --prefer-dist --optimize-autoloader
83+
84+
- name: Tests
85+
run: |
86+
vendor/bin/phpunit ${{ matrix.COVERAGE_FLAGS }}
87+
env:
88+
DB_PORT: ${{ job.services.testdb.ports[3306] }}

.github/workflows/mariadb-10.2.yml

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
name: MariaDB 10.2 Tests
2+
3+
on: push
4+
5+
jobs:
6+
test:
7+
name: |
8+
MariaDB 10.2 Tests - PHP ${{ matrix.php-versions }}
9+
${{ matrix.DB_ADAPTER }}
10+
${{ matrix.DB_PDO_PROTOCOL }}
11+
runs-on: ubuntu-latest
12+
13+
strategy:
14+
# if one of the matrix-entries break, all entries getting canceled.
15+
fail-fast: true
16+
matrix:
17+
include:
18+
# PHP 7.2
19+
- php-versions: 7.2
20+
DB_ADAPTER: mysqli
21+
- php-versions: 7.2
22+
DB_ADAPTER: pdo
23+
DB_PDO_PROTOCOL: mysql
24+
- php-versions: 7.2
25+
DB_ADAPTER: pdo
26+
DB_PDO_PROTOCOL: mysql
27+
CACHE_ENABLED: true
28+
# PHP 7.3
29+
- php-versions: 7.3
30+
DB_ADAPTER: mysqli
31+
- php-versions: 7.3
32+
DB_ADAPTER: pdo
33+
DB_PDO_PROTOCOL: mysql
34+
- php-versions: 7.3
35+
DB_ADAPTER: pdo
36+
DB_PDO_PROTOCOL: mysql
37+
CACHE_ENABLED: true
38+
# PHP 7.4
39+
- php-versions: 7.4
40+
DB_ADAPTER: mysqli
41+
- php-versions: 7.4
42+
DB_ADAPTER: pdo
43+
DB_PDO_PROTOCOL: mysql
44+
- php-versions: 7.4
45+
DB_ADAPTER: pdo
46+
DB_PDO_PROTOCOL: mysql
47+
CACHE_ENABLED: true
48+
# PHP 8.0
49+
- php-versions: 8.0
50+
DB_ADAPTER: mysqli
51+
- php-versions: 8.0
52+
DB_ADAPTER: pdo
53+
DB_PDO_PROTOCOL: mysql
54+
- php-versions: 8.0
55+
DB_ADAPTER: pdo
56+
DB_PDO_PROTOCOL: mysql
57+
CACHE_ENABLED: true
58+
59+
services:
60+
testdb:
61+
image: mariadb:10.2
62+
env:
63+
MYSQL_ROOT_PASSWORD: Pass123
64+
MYSQL_DATABASE: arc2_test
65+
MYSQL_ALLOW_EMPTY_PASSWORD: false
66+
ports:
67+
- 3306
68+
options: --health-cmd="mysqladmin ping" --health-interval=15s --health-timeout=3s --health-retries=4
69+
70+
steps:
71+
- name: Checkout
72+
uses: actions/checkout@v2
73+
74+
- name: Install PHP
75+
uses: shivammathur/setup-php@v2
76+
with:
77+
php-version: ${{ matrix.php-versions }}
78+
coverage: xdebug
79+
ini-values: memory_limit=1G
80+
81+
- name: Install Composer dependencies
82+
run: composer install --no-progress --no-suggest --prefer-dist --optimize-autoloader
83+
84+
- name: Tests
85+
run: |
86+
vendor/bin/phpunit ${{ matrix.COVERAGE_FLAGS }}
87+
env:
88+
DB_PORT: ${{ job.services.testdb.ports[3306] }}

.github/workflows/mariadb-10.3.yml

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
name: MariaDB 10.3 Tests
2+
3+
on: push
4+
5+
jobs:
6+
test:
7+
name: |
8+
MariaDB 10.3 Tests - PHP ${{ matrix.php-versions }}
9+
${{ matrix.DB_ADAPTER }}
10+
${{ matrix.DB_PDO_PROTOCOL }}
11+
runs-on: ubuntu-latest
12+
13+
strategy:
14+
# if one of the matrix-entries break, all entries getting canceled.
15+
fail-fast: true
16+
matrix:
17+
include:
18+
# PHP 7.2
19+
- php-versions: 7.2
20+
DB_ADAPTER: mysqli
21+
- php-versions: 7.2
22+
DB_ADAPTER: pdo
23+
DB_PDO_PROTOCOL: mysql
24+
- php-versions: 7.2
25+
DB_ADAPTER: pdo
26+
DB_PDO_PROTOCOL: mysql
27+
CACHE_ENABLED: true
28+
# PHP 7.3
29+
- php-versions: 7.3
30+
DB_ADAPTER: mysqli
31+
- php-versions: 7.3
32+
DB_ADAPTER: pdo
33+
DB_PDO_PROTOCOL: mysql
34+
- php-versions: 7.3
35+
DB_ADAPTER: pdo
36+
DB_PDO_PROTOCOL: mysql
37+
CACHE_ENABLED: true
38+
# PHP 7.4
39+
- php-versions: 7.4
40+
DB_ADAPTER: mysqli
41+
- php-versions: 7.4
42+
DB_ADAPTER: pdo
43+
DB_PDO_PROTOCOL: mysql
44+
- php-versions: 7.4
45+
DB_ADAPTER: pdo
46+
DB_PDO_PROTOCOL: mysql
47+
CACHE_ENABLED: true
48+
# PHP 8.0
49+
- php-versions: 8.0
50+
DB_ADAPTER: mysqli
51+
- php-versions: 8.0
52+
DB_ADAPTER: pdo
53+
DB_PDO_PROTOCOL: mysql
54+
- php-versions: 8.0
55+
DB_ADAPTER: pdo
56+
DB_PDO_PROTOCOL: mysql
57+
CACHE_ENABLED: true
58+
59+
services:
60+
testdb:
61+
image: mariadb:10.3
62+
env:
63+
MYSQL_ROOT_PASSWORD: Pass123
64+
MYSQL_DATABASE: arc2_test
65+
MYSQL_ALLOW_EMPTY_PASSWORD: false
66+
ports:
67+
- 3306
68+
options: --health-cmd="mysqladmin ping" --health-interval=15s --health-timeout=3s --health-retries=4
69+
70+
steps:
71+
- name: Checkout
72+
uses: actions/checkout@v2
73+
74+
- name: Install PHP
75+
uses: shivammathur/setup-php@v2
76+
with:
77+
php-version: ${{ matrix.php-versions }}
78+
coverage: xdebug
79+
ini-values: memory_limit=1G
80+
81+
- name: Install Composer dependencies
82+
run: composer install --no-progress --no-suggest --prefer-dist --optimize-autoloader
83+
84+
- name: Tests
85+
run: |
86+
vendor/bin/phpunit ${{ matrix.COVERAGE_FLAGS }}
87+
env:
88+
DB_PORT: ${{ job.services.testdb.ports[3306] }}

.github/workflows/mariadb-10.4.yml

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
name: MariaDB 10.4 Tests
2+
3+
on: push
4+
5+
jobs:
6+
test:
7+
name: |
8+
MariaDB 10.4 Tests - PHP ${{ matrix.php-versions }}
9+
${{ matrix.DB_ADAPTER }}
10+
${{ matrix.DB_PDO_PROTOCOL }}
11+
runs-on: ubuntu-latest
12+
13+
strategy:
14+
# if one of the matrix-entries break, all entries getting canceled.
15+
fail-fast: true
16+
matrix:
17+
include:
18+
# PHP 7.2
19+
- php-versions: 7.2
20+
DB_ADAPTER: mysqli
21+
- php-versions: 7.2
22+
DB_ADAPTER: pdo
23+
DB_PDO_PROTOCOL: mysql
24+
- php-versions: 7.2
25+
DB_ADAPTER: pdo
26+
DB_PDO_PROTOCOL: mysql
27+
CACHE_ENABLED: true
28+
# PHP 7.3
29+
- php-versions: 7.3
30+
DB_ADAPTER: mysqli
31+
- php-versions: 7.3
32+
DB_ADAPTER: pdo
33+
DB_PDO_PROTOCOL: mysql
34+
- php-versions: 7.3
35+
DB_ADAPTER: pdo
36+
DB_PDO_PROTOCOL: mysql
37+
CACHE_ENABLED: true
38+
# PHP 7.4
39+
- php-versions: 7.4
40+
DB_ADAPTER: mysqli
41+
- php-versions: 7.4
42+
DB_ADAPTER: pdo
43+
DB_PDO_PROTOCOL: mysql
44+
- php-versions: 7.4
45+
DB_ADAPTER: pdo
46+
DB_PDO_PROTOCOL: mysql
47+
CACHE_ENABLED: true
48+
# PHP 8.0
49+
- php-versions: 8.0
50+
DB_ADAPTER: mysqli
51+
- php-versions: 8.0
52+
DB_ADAPTER: pdo
53+
DB_PDO_PROTOCOL: mysql
54+
- php-versions: 8.0
55+
DB_ADAPTER: pdo
56+
DB_PDO_PROTOCOL: mysql
57+
CACHE_ENABLED: true
58+
59+
services:
60+
testdb:
61+
image: mariadb:10.4
62+
env:
63+
MYSQL_ROOT_PASSWORD: Pass123
64+
MYSQL_DATABASE: arc2_test
65+
MYSQL_ALLOW_EMPTY_PASSWORD: false
66+
ports:
67+
- 3306
68+
options: --health-cmd="mysqladmin ping" --health-interval=15s --health-timeout=3s --health-retries=4
69+
70+
steps:
71+
- name: Checkout
72+
uses: actions/checkout@v2
73+
74+
- name: Install PHP
75+
uses: shivammathur/setup-php@v2
76+
with:
77+
php-version: ${{ matrix.php-versions }}
78+
coverage: xdebug
79+
ini-values: memory_limit=1G
80+
81+
- name: Install Composer dependencies
82+
run: composer install --no-progress --no-suggest --prefer-dist --optimize-autoloader
83+
84+
- name: Tests
85+
run: |
86+
vendor/bin/phpunit ${{ matrix.COVERAGE_FLAGS }}
87+
env:
88+
DB_PORT: ${{ job.services.testdb.ports[3306] }}

0 commit comments

Comments
 (0)