Skip to content

Commit d3e8469

Browse files
shivammathursharadraju
authored andcommitted
Refactor Linux tests to separate runs for each oracle version
Update CI inputs: We run PHP 8.6/master only on Linux and not on Windows as releasing DLLs for master branch is not a good idea.
1 parent bdceee1 commit d3e8469

1 file changed

Lines changed: 47 additions & 76 deletions

File tree

.github/workflows/ci.yml

Lines changed: 47 additions & 76 deletions
Original file line numberDiff line numberDiff line change
@@ -12,53 +12,53 @@ jobs:
1212
strategy:
1313
fail-fast: false
1414
matrix:
15+
version: [8.3, 8.4, 8.5, 8.6]
16+
oracle: [11, 18, 21, 23]
1517
include:
18+
- oracle: 11
19+
image: wnameless/oracle-xe-11g-r2
20+
port: 1511
21+
options: --name=oci
22+
- oracle: 18
23+
image: gvenzl/oracle-xe:18-slim-faststart
24+
port: 1518
25+
options: --health-cmd healthcheck.sh --health-interval 10s --health-timeout 5s --health-retries 10
26+
- oracle: 21
27+
image: gvenzl/oracle-xe:21-slim-faststart
28+
port: 1521
29+
options: --health-cmd healthcheck.sh --health-interval 10s --health-timeout 5s --health-retries 10
30+
- oracle: 23
31+
image: gvenzl/oracle-free:23-slim
32+
port: 1523
33+
options: --health-cmd healthcheck.sh --health-interval 10s --health-timeout 5s --health-retries 10
1634
- version: 8.3
17-
branch: PHP-8.3
35+
branch : PHP-8.3
1836
- version: 8.4
19-
branch: PHP-8.4
37+
branch : PHP-8.4
2038
- version: 8.5
21-
branch: master
39+
branch : PHP-8.5
40+
- version: 8.6
41+
branch : master
42+
exclude:
43+
# Test with Oracle 11 with PHP 8.3 only
44+
# https://github.com/php/php-src/pull/18734
45+
# https://github.com/php/pecl-database-pdo_oci/pull/16#discussion_r2119810891
46+
- version: 8.4
47+
oracle: 11
48+
- version: 8.5
49+
oracle: 11
50+
- version: 8.6
51+
oracle: 11
52+
2253
services:
23-
oracle-11:
24-
image: wnameless/oracle-xe-11g-r2
54+
oracle:
55+
image: ${{ matrix.image }}
2556
ports:
26-
- 1511:1521
57+
- ${{ matrix.port }}:1521
2758
env:
2859
ORACLE_ALLOW_REMOTE: true
29-
oracle-18:
30-
image: gvenzl/oracle-xe:18-slim-faststart
31-
ports:
32-
- 1518:1521
33-
env:
34-
ORACLE_PASSWORD: my_pass_18
35-
options: >-
36-
--health-cmd healthcheck.sh
37-
--health-interval 10s
38-
--health-timeout 5s
39-
--health-retries 10
40-
oracle-21:
41-
image: gvenzl/oracle-xe:21-slim-faststart
42-
ports:
43-
- 1521:1521
44-
env:
45-
ORACLE_PASSWORD: my_pass_21
46-
options: >-
47-
--health-cmd healthcheck.sh
48-
--health-interval 10s
49-
--health-timeout 5s
50-
--health-retries 10
51-
oracle-23:
52-
image: gvenzl/oracle-free:23-slim
53-
ports:
54-
- 1523:1521
55-
env:
56-
ORACLE_PASSWORD: my_pass_23
57-
options: >-
58-
--health-cmd healthcheck.sh
59-
--health-interval 10s
60-
--health-timeout 5s
61-
--health-retries 10
60+
ORACLE_PASSWORD: oracle
61+
options: ${{ matrix.options }}
6262
runs-on: ubuntu-latest
6363
steps:
6464
- name: Setup dependencies
@@ -75,14 +75,15 @@ jobs:
7575
# fix debug build warning: zend_signal: handler was replaced for signal (2) after startup
7676
echo DISABLE_INTERRUPT=on > /opt/oracle/instantclient/network/admin/sqlnet.ora
7777
- name: Checkout
78-
uses: actions/checkout@v4
78+
uses: actions/checkout@v6
7979
- name: Checkout php-src
80-
uses: actions/checkout@v4
80+
uses: actions/checkout@v6
8181
with:
8282
repository: php/php-src
8383
ref: ${{ matrix.branch }}
8484
path: php-src
8585
- name: Setup PHP
86+
id: setup-php
8687
uses: shivammathur/setup-php@v2
8788
with:
8889
php-version: ${{matrix.version}}
@@ -95,57 +96,27 @@ jobs:
9596
echo 'extension=pdo_oci.so' | sudo tee /etc/php/${{ matrix.version }}/mods-available/pdo_oci.ini
9697
sudo phpenmod -v ${{ matrix.version }} pdo_oci
9798
php --ri pdo_oci
98-
- name: Run tests /w Oracle 11 (for PHP 8.3 only)
99-
# https://github.com/php/php-src/pull/18734
100-
# https://github.com/php/pecl-database-pdo_oci/pull/16#discussion_r2119810891
101-
if: matrix.version == '8.3'
99+
- name: Run tests /w Oracle ${{ matrix.oracle }}
102100
run: php php-src/run-tests.php --show-diff --show-slow 1000 --set-timeout 120 tests
103101
env:
104102
PDO_TEST_DIR: ${{ github.workspace }}/php-src/ext/pdo/tests
105103
PDO_OCI_TEST_DIR: ${{ github.workspace }}/tests
106104
PDO_OCI_TEST_USER: system
107105
PDO_OCI_TEST_PASS: oracle
108-
PDO_OCI_TEST_DSN: oci:dbname=0.0.0.0:1511/XE;charset=AL32UTF8
109-
- name: Run tests /w Oracle 18
110-
if: success() || failure()
111-
run: php php-src/run-tests.php --show-diff --show-slow 1000 --set-timeout 120 tests
112-
env:
113-
PDO_TEST_DIR: ${{ github.workspace }}/php-src/ext/pdo/tests
114-
PDO_OCI_TEST_DIR: ${{ github.workspace }}/tests
115-
PDO_OCI_TEST_USER: system
116-
PDO_OCI_TEST_PASS: my_pass_18
117-
PDO_OCI_TEST_DSN: oci:dbname=0.0.0.0:1518/XE;charset=AL32UTF8
118-
- name: Run tests /w Oracle 21
119-
if: success() || failure()
120-
run: php php-src/run-tests.php --show-diff --show-slow 1000 --set-timeout 120 tests
121-
env:
122-
PDO_TEST_DIR: ${{ github.workspace }}/php-src/ext/pdo/tests
123-
PDO_OCI_TEST_DIR: ${{ github.workspace }}/tests
124-
PDO_OCI_TEST_USER: system
125-
PDO_OCI_TEST_PASS: my_pass_21
126-
PDO_OCI_TEST_DSN: oci:dbname=0.0.0.0:1521/XE;charset=AL32UTF8
127-
- name: Run tests /w Oracle 23
128-
if: success() || failure()
129-
run: php php-src/run-tests.php --show-diff --show-slow 1000 --set-timeout 120 tests
130-
env:
131-
PDO_TEST_DIR: ${{ github.workspace }}/php-src/ext/pdo/tests
132-
PDO_OCI_TEST_DIR: ${{ github.workspace }}/tests
133-
PDO_OCI_TEST_USER: system
134-
PDO_OCI_TEST_PASS: my_pass_23
135-
PDO_OCI_TEST_DSN: oci:dbname=0.0.0.0:1523/FREEPDB1;charset=AL32UTF8
106+
PDO_OCI_TEST_DSN: oci:dbname=0.0.0.0:${{ matrix.port }}/${{ matrix.oracle == 23 && 'FREEPDB1' || 'XE' }};charset=AL32UTF8
136107

137108
windows-matrix:
138109
runs-on: ubuntu-latest
139110
outputs:
140111
matrix: ${{ steps.extension-matrix.outputs.matrix }}
141112
steps:
142113
- name: Checkout
143-
uses: actions/checkout@v4
114+
uses: actions/checkout@v6
144115
- name: Create matrix
145116
id: extension-matrix
146117
uses: php/php-windows-builder/extension-matrix@v1
147118
with:
148-
php-version-list: '8.3, 8.4, master'
119+
php-version-list: '8.3, 8.4, 8.5'
149120

150121
windows:
151122
needs: windows-matrix
@@ -155,7 +126,7 @@ jobs:
155126
matrix: ${{fromJson(needs.windows-matrix.outputs.matrix)}}
156127
steps:
157128
- name: Checkout
158-
uses: actions/checkout@v4
129+
uses: actions/checkout@v6
159130
- name: Build
160131
uses: php/php-windows-builder/extension@v1
161132
with:

0 commit comments

Comments
 (0)