Skip to content

Modernize CI Pipeline: PHP 8.4, ODBC 18, SQL Server 2022#1549

Merged
jahnvi480 merged 113 commits intodevfrom
jahnvi/pipeline_fix
Jan 14, 2026
Merged

Modernize CI Pipeline: PHP 8.4, ODBC 18, SQL Server 2022#1549
jahnvi480 merged 113 commits intodevfrom
jahnvi/pipeline_fix

Conversation

@jahnvi480
Copy link
Contributor

@jahnvi480 jahnvi480 commented Dec 24, 2025

This pull request introduces support for PHP 8.4 and updates the base environment from Ubuntu 18.04 to 22.04, along with several improvements to error handling and test infrastructure. The most significant changes include upgrading the Docker build and Appveyor CI matrix for PHP 8.4, updating the version to 5.13, improving error reporting in the PDO SQLSRV driver, and refactoring test connection logic for consistency and maintainability.

Environment and Build System Updates:

  • Upgraded the base image in Dockerfile-msphpsql from Ubuntu 18.04 to 22.04, switched installed PHP version from 7.3 to 8.4, updated related package installs, and changed all PHP references and configuration paths to use PHP 8.4.
  • Added PHP 8.4 build configuration to the Appveyor CI matrix for automated Windows builds and testing.
  • Updated build scripts (builddrivers.py, buildtools.py) for Windows to use double backslashes for path consistency and added support for selecting the correct Visual Studio version for PHP 8.4 (vs17).

Driver and Version Updates:

  • Updated the driver version to 5.13 in source/shared/version.h.

Error Handling Improvements:

  • Enhanced error reporting in pdo_sqlsrv/pdo_util.cpp: When ODBC diagnostic retrieval fails, a minimal error with SQLSTATE "HY000" and a clear message is now generated, improving reliability of error feedback.

Test Infrastructure Refactoring:

  • Refactored test connection logic in test/bvt/pdo_sqlsrv/connect.inc by introducing a reusable getPdoConnection() function, and updated all test files to use this function for consistent and maintainable connection setup.

Build Configuration Improvements:

  • Improved build configuration options in buildtools.py by adding --with-iconv and removing duplicate --enable-mbstring for better compatibility with PHP 8.4.

ODBC Driver 18 enables encryption by default. Tests that create their own connections need explicit Encrypt parameter to work with self-signed certificates. Modified 51 test files in pdo_sqlsrv and sqlsrv functional tests.
Fix remaining test files that were still missing Encrypt parameter
- Add MsSetup.inc include to sqlsrv_escape_braces.phpt for encrypt variable - Add -C flag to bcp command in setup_dbs.py for SSL certificate trust - Add Encrypt parameter to driver injection tests in sqlsrv_testConnection_unix.phpt
@jahnvi480 jahnvi480 changed the title Fixing Windows Pipeline Modernize CI Pipeline: PHP 8.4, ODBC 18, SQL Server 2022 Jan 14, 2026
@jahnvi480 jahnvi480 merged commit 2003148 into dev Jan 14, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants