[PECL-CVS] [pecl-database-pdo_oci] main: Refactor Linux tests to separate runs for each oracle version
[email protected] (Shivam Mathur via Sharad Chandran R)
| Newsgroups | php.pecl.cvs |
|---|---|
| Message-ID | <[email protected]> |
Author: Shivam Mathur (shivammathur)
Committer: Sharad Chandran R (sharadraju)
Date: 2025-12-30T06:35:29+05:30
Commit: https://github.com/php/pecl-database-pdo_oci/commit/d3e846924a3974798a3b4b07894d9fd7ce8dce4c
Raw diff: https://github.com/php/pecl-database-pdo_oci/commit/d3e846924a3974798a3b4b07894d9fd7ce8dce4c.diff
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.
Changed paths:
M .github/workflows/ci.yml
Diff:
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index dd539d0..32c254e 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -12,53 +12,53 @@ jobs:
strategy:
fail-fast: false
matrix:
+ version: [8.3, 8.4, 8.5, 8.6]
+ oracle: [11, 18, 21, 23]
include:
+ - oracle: 11
+ image: wnameless/oracle-xe-11g-r2
+ port: 1511
+ options: --name=oci
+ - oracle: 18
+ image: gvenzl/oracle-xe:18-slim-faststart
+ port: 1518
+ options: --health-cmd healthcheck.sh --health-interval 10s --health-timeout 5s --health-retries 10
+ - oracle: 21
+ image: gvenzl/oracle-xe:21-slim-faststart
+ port: 1521
+ options: --health-cmd healthcheck.sh --health-interval 10s --health-timeout 5s --health-retries 10
+ - oracle: 23
+ image: gvenzl/oracle-free:23-slim
+ port: 1523
+ options: --health-cmd healthcheck.sh --health-interval 10s --health-timeout 5s --health-retries 10
- version: 8.3
- branch: PHP-8.3
+ branch : PHP-8.3
- version: 8.4
- branch: PHP-8.4
+ branch : PHP-8.4
- version: 8.5
- branch: master
+ branch : PHP-8.5
+ - version: 8.6
+ branch : master
+ exclude:
+ # Test with Oracle 11 with PHP 8.3 only
+ # https://github.com/php/php-src/pull/18734
+ # https://github.com/php/pecl-database-pdo_oci/pull/16#discussion_r2119810891
+ - version: 8.4
+ oracle: 11
+ - version: 8.5
+ oracle: 11
+ - version: 8.6
+ oracle: 11
+
services:
- oracle-11:
- image: wnameless/oracle-xe-11g-r2
+ oracle:
+ image: ${{ matrix.image }}
ports:
- - 1511:1521
+ - ${{ matrix.port }}:1521
env:
ORACLE_ALLOW_REMOTE: true
- oracle-18:
- image: gvenzl/oracle-xe:18-slim-faststart
- ports:
- - 1518:1521
- env:
- ORACLE_PASSWORD: my_pass_18
- options: >-
- --health-cmd healthcheck.sh
- --health-interval 10s
- --health-timeout 5s
- --health-retries 10
- oracle-21:
- image: gvenzl/oracle-xe:21-slim-faststart
- ports:
- - 1521:1521
- env:
- ORACLE_PASSWORD: my_pass_21
- options: >-
- --health-cmd healthcheck.sh
- --health-interval 10s
- --health-timeout 5s
- --health-retries 10
- oracle-23:
- image: gvenzl/oracle-free:23-slim
- ports:
- - 1523:1521
- env:
- ORACLE_PASSWORD: my_pass_23
- options: >-
- --health-cmd healthcheck.sh
- --health-interval 10s
- --health-timeout 5s
- --health-retries 10
+ ORACLE_PASSWORD: oracle
+ options: ${{ matrix.options }}
runs-on: ubuntu-latest
steps:
- name: Setup dependencies
@@ -75,14 +75,15 @@ jobs:
# fix debug build warning: zend_signal: handler was replaced for signal (2) after startup
echo DISABLE_INTERRUPT=on > /opt/oracle/instantclient/network/admin/sqlnet.ora
- name: Checkout
- uses: actions/checkout@v4
+ uses: actions/checkout@v6
- name: Checkout php-src
- uses: actions/checkout@v4
+ uses: actions/checkout@v6
with:
repository: php/php-src
ref: ${{ matrix.branch }}
path: php-src
- name: Setup PHP
+ id: setup-php
uses: shivammathur/setup-php@v2
with:
php-version: ${{matrix.version}}
@@ -95,44 +96,14 @@ jobs:
echo 'extension=pdo_oci.so' | sudo tee /etc/php/${{ matrix.version }}/mods-available/pdo_oci.ini
sudo phpenmod -v ${{ matrix.version }} pdo_oci
php --ri pdo_oci
- - name: Run tests /w Oracle 11 (for PHP 8.3 only)
- # https://github.com/php/php-src/pull/18734
- # https://github.com/php/pecl-database-pdo_oci/pull/16#discussion_r2119810891
- if: matrix.version == '8.3'
+ - name: Run tests /w Oracle ${{ matrix.oracle }}
run: php php-src/run-tests.php --show-diff --show-slow 1000 --set-timeout 120 tests
env:
PDO_TEST_DIR: ${{ github.workspace }}/php-src/ext/pdo/tests
PDO_OCI_TEST_DIR: ${{ github.workspace }}/tests
PDO_OCI_TEST_USER: system
PDO_OCI_TEST_PASS: oracle
- PDO_OCI_TEST_DSN: oci:dbname=0.0.0.0:1511/XE;charset=AL32UTF8
- - name: Run tests /w Oracle 18
- if: success() || failure()
- run: php php-src/run-tests.php --show-diff --show-slow 1000 --set-timeout 120 tests
- env:
- PDO_TEST_DIR: ${{ github.workspace }}/php-src/ext/pdo/tests
- PDO_OCI_TEST_DIR: ${{ github.workspace }}/tests
- PDO_OCI_TEST_USER: system
- PDO_OCI_TEST_PASS: my_pass_18
- PDO_OCI_TEST_DSN: oci:dbname=0.0.0.0:1518/XE;charset=AL32UTF8
- - name: Run tests /w Oracle 21
- if: success() || failure()
- run: php php-src/run-tests.php --show-diff --show-slow 1000 --set-timeout 120 tests
- env:
- PDO_TEST_DIR: ${{ github.workspace }}/php-src/ext/pdo/tests
- PDO_OCI_TEST_DIR: ${{ github.workspace }}/tests
- PDO_OCI_TEST_USER: system
- PDO_OCI_TEST_PASS: my_pass_21
- PDO_OCI_TEST_DSN: oci:dbname=0.0.0.0:1521/XE;charset=AL32UTF8
- - name: Run tests /w Oracle 23
- if: success() || failure()
- run: php php-src/run-tests.php --show-diff --show-slow 1000 --set-timeout 120 tests
- env:
- PDO_TEST_DIR: ${{ github.workspace }}/php-src/ext/pdo/tests
- PDO_OCI_TEST_DIR: ${{ github.workspace }}/tests
- PDO_OCI_TEST_USER: system
- PDO_OCI_TEST_PASS: my_pass_23
- PDO_OCI_TEST_DSN: oci:dbname=0.0.0.0:1523/FREEPDB1;charset=AL32UTF8
+ PDO_OCI_TEST_DSN: oci:dbname=0.0.0.0:${{ matrix.port }}/${{ matrix.oracle == 23 && 'FREEPDB1' || 'XE' }};charset=AL32UTF8
windows-matrix:
runs-on: ubuntu-latest
@@ -140,12 +111,12 @@ jobs:
matrix: ${{ steps.extension-matrix.outputs.matrix }}
steps:
- name: Checkout
- uses: actions/checkout@v4
+ uses: actions/checkout@v6
- name: Create matrix
id: extension-matrix
uses: php/php-windows-builder/extension-matrix@v1
with:
- php-version-list: '8.3, 8.4, master'
+ php-version-list: '8.3, 8.4, 8.5'
windows:
needs: windows-matrix
@@ -155,7 +126,7 @@ jobs:
matrix: ${{fromJson(needs.windows-matrix.outputs.matrix)}}
steps:
- name: Checkout
- uses: actions/checkout@v4
+ uses: actions/checkout@v6
- name: Build
uses: php/php-windows-builder/extension@v1
with: