Skip to content

Commit 7128a34

Browse files
committed
Merge branch '4.2.x' into 4.3.x
2 parents 71fe6dc + de59552 commit 7128a34

13 files changed

+644
-417
lines changed

.github/workflows/continuous-integration.yml

Lines changed: 51 additions & 407 deletions
Large diffs are not rendered by default.

.github/workflows/nightly.yml

Lines changed: 115 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ env:
99
fail-fast: true
1010

1111
jobs:
12-
phpunit-mariadb:
12+
phpunit-mariadb-devel:
1313
name: "PHPUnit with MariaDB"
1414
runs-on: "ubuntu-24.04"
1515

@@ -70,3 +70,117 @@ jobs:
7070
type: "stream"
7171
topic: "CI - Doctrine/DBAL"
7272
content: "There was an error running Doctrine on MariaDB:${{ matrix.mariadb-version }} - URL: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}."
73+
74+
phpunit-sqlite:
75+
name: PHPUnit with SQLite
76+
uses: ./.github/workflows/phpunit-sqlite.yml
77+
with:
78+
os: ${{ matrix.os }}
79+
php-version: ${{ matrix.php-version }}
80+
extension: ${{ matrix.extension }}
81+
dependency-versions: ${{ matrix.dependency-versions }}
82+
83+
strategy:
84+
matrix:
85+
os:
86+
- ubuntu-24.04
87+
php-version:
88+
- '8.5'
89+
extension:
90+
- pdo_sqlite
91+
- sqlite3
92+
dependency-versions:
93+
- highest
94+
95+
phpunit-mariadb:
96+
name: PHPUnit with MariaDB
97+
uses: ./.github/workflows/phpunit-mariadb.yml
98+
with:
99+
php-version: ${{ matrix.php-version }}
100+
mariadb-version: ${{ matrix.mariadb-version }}
101+
extension: ${{ matrix.extension }}
102+
103+
strategy:
104+
matrix:
105+
php-version:
106+
- '8.5'
107+
mariadb-version:
108+
- '11.4'
109+
extension:
110+
- mysqli
111+
- pdo_mysql
112+
113+
phpunit-mysql:
114+
name: PHPUnit with MySQL
115+
uses: ./.github/workflows/phpunit-mysql.yml
116+
with:
117+
php-version: ${{ matrix.php-version }}
118+
mysql-version: ${{ matrix.mysql-version }}
119+
extension: ${{ matrix.extension }}
120+
121+
strategy:
122+
matrix:
123+
php-version:
124+
- '8.5'
125+
mysql-version:
126+
- '9.1'
127+
extension:
128+
- mysqli
129+
- pdo_mysql
130+
131+
phpunit-sqlserver:
132+
name: PHPUnit with SQL Server
133+
uses: ./.github/workflows/phpunit-sqlserver.yml
134+
with:
135+
php-version: ${{ matrix.php-version }}
136+
extension: ${{ matrix.extension }}
137+
collation: ${{ matrix.collation }}
138+
139+
strategy:
140+
matrix:
141+
php-version:
142+
- '8.5'
143+
extension:
144+
- sqlsrv
145+
- pdo_sqlsrv
146+
collation:
147+
- Latin1_General_100_CI_AS_SC_UTF8
148+
149+
phpunit-oracle:
150+
name: PHPUnit with Oracle
151+
uses: ./.github/workflows/phpunit-oracle.yml
152+
with:
153+
php-version: ${{ matrix.php-version }}
154+
oracle-version: ${{ matrix.oracle-version }}
155+
extension: ${{ matrix.extension }}
156+
157+
strategy:
158+
matrix:
159+
php-version:
160+
- '8.5'
161+
oracle-version:
162+
- '23'
163+
extension:
164+
- oci8
165+
- pdo_oci
166+
167+
phpunit-postgres:
168+
name: PHPUnit with PostgreSQL
169+
uses: ./.github/workflows/phpunit-postgres.yml
170+
with:
171+
php-version: ${{ matrix.php-version }}
172+
postgres-version: ${{ matrix.postgres-version }}
173+
extension: ${{ matrix.extension }}
174+
postgres-locale-provider: ${{ matrix.postgres-locale-provider }}
175+
176+
strategy:
177+
matrix:
178+
php-version:
179+
- '8.5'
180+
postgres-version:
181+
- '17'
182+
extension:
183+
- pgsql
184+
- pdo_pgsql
185+
postgres-locale-provider:
186+
- libc

.github/workflows/phpunit-db2.yml

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
name: PHPUnit with Db2
2+
3+
on:
4+
workflow_call:
5+
inputs:
6+
php-version:
7+
required: true
8+
type: string
9+
10+
jobs:
11+
phpunit-db2:
12+
runs-on: ubuntu-24.04
13+
14+
services:
15+
db2:
16+
image: icr.io/db2_community/db2:11.5.8.0
17+
ports:
18+
- '50000:50000'
19+
env:
20+
DB2INSTANCE: db2inst1
21+
DB2INST1_PASSWORD: Doctrine2018
22+
LICENSE: accept
23+
DBNAME: doctrine
24+
options: >-
25+
--health-cmd "su - ${DB2INSTANCE} -c \"db2 -t CONNECT TO ${DBNAME};\""
26+
--health-interval 30s
27+
--health-timeout 10s
28+
--health-retries 5
29+
--privileged
30+
31+
steps:
32+
- name: Checkout
33+
uses: actions/checkout@v4
34+
35+
- name: Install IBM DB2 CLI driver
36+
working-directory: /tmp
37+
run: |
38+
wget https://github.com/ibmdb/db2drivers/raw/refs/heads/main/clidriver/v11.5.9/linuxx64_odbc_cli.tar.gz
39+
tar xf linuxx64_odbc_cli.tar.gz
40+
rm linuxx64_odbc_cli.tar.gz
41+
42+
- name: Install PHP
43+
uses: shivammathur/setup-php@v2
44+
with:
45+
php-version: ${{ inputs.php-version }}
46+
extensions: ibm_db2
47+
coverage: pcov
48+
ini-values: zend.assertions=1
49+
env:
50+
IBM_DB2_CONFIGURE_OPTS: '--with-IBM_DB2=/tmp/clidriver'
51+
52+
- name: Install dependencies with Composer
53+
uses: ramsey/composer-install@v3
54+
with:
55+
composer-options: '--ignore-platform-req=php+'
56+
57+
- name: Create temporary tablespace
58+
run: docker exec "${{ job.services.db2.id }}" su - db2inst1 -c "db2 -t CONNECT TO doctrine; db2 -t CREATE USER TEMPORARY TABLESPACE doctrine_tbsp PAGESIZE 4 K"
59+
60+
- name: Run PHPUnit
61+
run: vendor/bin/phpunit -c ci/github/phpunit/ibm_db2.xml --coverage-clover=coverage.xml
62+
63+
- name: Upload coverage file
64+
uses: actions/upload-artifact@v4
65+
with:
66+
name: ${{ github.job }}-php-${{ inputs.php-version }}.coverage
67+
path: coverage.xml

.github/workflows/phpunit-mariadb.yml

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
name: PHPUnit with MariaDB
2+
3+
on:
4+
workflow_call:
5+
inputs:
6+
php-version:
7+
required: true
8+
type: string
9+
mariadb-version:
10+
required: true
11+
type: string
12+
extension:
13+
required: true
14+
type: string
15+
16+
jobs:
17+
phpunit-mariadb:
18+
runs-on: ubuntu-24.04
19+
20+
services:
21+
mariadb:
22+
image: mariadb:${{ inputs.mariadb-version }}
23+
ports:
24+
- '3306:3306'
25+
env:
26+
MYSQL_ALLOW_EMPTY_PASSWORD: 'yes'
27+
MYSQL_DATABASE: doctrine_tests
28+
options: >-
29+
--health-cmd "healthcheck.sh --connect --innodb_initialized || mysqladmin ping --protocol tcp --silent"
30+
31+
steps:
32+
- name: Checkout
33+
uses: actions/checkout@v4
34+
35+
- name: Install PHP
36+
uses: shivammathur/setup-php@v2
37+
with:
38+
php-version: ${{ inputs.php-version }}
39+
extensions: ${{ inputs.extension }}
40+
coverage: pcov
41+
ini-values: zend.assertions=1
42+
43+
- name: Install dependencies with Composer
44+
uses: ramsey/composer-install@v3
45+
with:
46+
composer-options: '--ignore-platform-req=php+'
47+
48+
- name: Run PHPUnit
49+
run: vendor/bin/phpunit -c ci/github/phpunit/${{ inputs.extension }}${{ inputs.config-file-suffix }}.xml --coverage-clover=coverage.xml
50+
51+
- name: Upload coverage file
52+
uses: actions/upload-artifact@v4
53+
with:
54+
name: ${{ github.job }}-${{ inputs.mariadb-version }}-php-${{ inputs.php-version }}-${{ inputs.extension }}.coverage
55+
path: coverage.xml

.github/workflows/phpunit-mysql.yml

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
name: PHPUnit with MySQL
2+
3+
on:
4+
workflow_call:
5+
inputs:
6+
php-version:
7+
required: true
8+
type: string
9+
mysql-version:
10+
required: true
11+
type: string
12+
extension:
13+
required: true
14+
type: string
15+
config-file-suffix:
16+
required: false
17+
type: string
18+
default: ''
19+
20+
jobs:
21+
phpunit-mysql:
22+
runs-on: ubuntu-24.04
23+
24+
services:
25+
mysql:
26+
image: mysql:${{ inputs.mysql-version }}
27+
ports:
28+
- '3306:3306'
29+
env:
30+
MYSQL_ALLOW_EMPTY_PASSWORD: 'yes'
31+
MYSQL_DATABASE: doctrine_tests
32+
options: >-
33+
--health-cmd "mysqladmin ping --silent"
34+
35+
steps:
36+
- name: Checkout
37+
uses: actions/checkout@v4
38+
39+
- name: Install PHP
40+
uses: shivammathur/setup-php@v2
41+
with:
42+
php-version: ${{ inputs.php-version }}
43+
extensions: ${{ inputs.extension }}
44+
coverage: pcov
45+
ini-values: zend.assertions=1
46+
47+
- name: Install dependencies with Composer
48+
uses: ramsey/composer-install@v3
49+
with:
50+
composer-options: '--ignore-platform-req=php+'
51+
52+
- name: Copy TLS-related files
53+
run: docker cp "${{ job.services.mysql.id }}:/var/lib/mysql/ca.pem" . && docker cp "${{ job.services.mysql.id }}:/var/lib/mysql/client-cert.pem" . && docker cp "${{ job.services.mysql.id }}:/var/lib/mysql/client-key.pem" .
54+
if: ${{ endsWith(inputs.config-file-suffix, 'tls') }}
55+
56+
- name: Run PHPUnit
57+
run: vendor/bin/phpunit -c ci/github/phpunit/${{ inputs.extension }}${{ inputs.config-file-suffix }}.xml --coverage-clover=coverage.xml
58+
59+
- name: Upload coverage file
60+
uses: actions/upload-artifact@v4
61+
with:
62+
name: ${{ github.job }}-${{ inputs.mysql-version }}-php-${{ inputs.php-version }}-${{ inputs.extension }}${{ inputs.config-file-suffix }}.coverage
63+
path: coverage.xml

.github/workflows/phpunit-oracle.yml

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
name: PHPUnit with Oracle
2+
3+
on:
4+
workflow_call:
5+
inputs:
6+
php-version:
7+
required: true
8+
type: string
9+
oracle-version:
10+
required: true
11+
type: string
12+
extension:
13+
required: true
14+
type: string
15+
16+
jobs:
17+
phpunit-oracle:
18+
runs-on: ubuntu-24.04
19+
20+
services:
21+
oracle:
22+
image: gvenzl/oracle-${{ inputs.oracle-version < 23 && 'xe' || 'free' }}:${{ inputs.oracle-version }}
23+
ports:
24+
- '1521:1521'
25+
env:
26+
ORACLE_PASSWORD: oracle
27+
options: >-
28+
--health-cmd healthcheck.sh
29+
--health-interval 20s
30+
--health-timeout 10s
31+
--health-retries 10
32+
33+
steps:
34+
- name: Checkout
35+
uses: actions/checkout@v4
36+
37+
- name: Install PHP
38+
uses: shivammathur/setup-php@v2
39+
with:
40+
php-version: ${{ inputs.php-version }}
41+
extensions: ${{ inputs.extension }}
42+
coverage: pcov
43+
ini-values: zend.assertions=1
44+
45+
- name: Install dependencies with Composer
46+
uses: ramsey/composer-install@v3
47+
with:
48+
composer-options: '--ignore-platform-req=php+'
49+
50+
- name: Run PHPUnit
51+
run: vendor/bin/phpunit -c ci/github/phpunit/${{ inputs.extension }}${{ inputs.oracle-version < 23 && '-21' || '' }}.xml --coverage-clover=coverage.xml
52+
53+
- name: Upload coverage file
54+
uses: actions/upload-artifact@v4
55+
with:
56+
name: ${{ github.job }}-${{ inputs.oracle-version }}-php-${{ inputs.php-version }}-${{ inputs.extension }}.coverage
57+
path: coverage.xml

0 commit comments

Comments
 (0)