[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:
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.