Repository navigation
ci: add PHP 8.5 and non-blocking PHP 8.6 matrix legs - #140
Conversation
Mirror Cacti/cacti#8633: run PHP 8.5 and 8.6 as experimental (non-blocking) matrix legs via continue-on-error so bleeding-edge toolchain gaps do not turn CI red. PHP 8.5 is provisioned through shivammathur/setup-php as usual. PHP 8.6 is still pre-release and the setup-php nightly ships ABI-skewed bundled extensions, so the 8.6 leg provisions a coherent CLI from Ondrej Sury's PPA instead. The Ondrej PPA has no php8.6-xdebug build yet, so the patch-coverage gate (which needs a coverage driver) is skipped on the 8.6 leg only; the 8.5 leg keeps it via setup-php's xdebug. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
🟡 Changes recommended
The PHP 8.6 CI leg still requests coverage without a driver, causing PHPUnit’s fail-on-warning setting to fail the job and skip the subsequent Cacti poller checks.
1 open issue
What changed in this PR
Extends the servcheck integration-test matrix with non-blocking PHP 8.5 and 8.6 jobs, following the approach used in Cacti core.
Changes:
- Keeps PHP 8.2–8.4 blocking and marks the new versions experimental.
- Provisions PHP 8.6 and its extensions from Ondřej Surý’s PPA; other versions retain
setup-php. - Skips the patch-coverage gate on PHP 8.6 because its toolchain lacks a coverage driver.
| File | Description |
|---|---|
.github/workflows/plugin-ci-workflow.yml |
Adds experimental PHP jobs, dedicated 8.6 provisioning, and conditional coverage enforcement. |
Review effort: Balanced
Use the runner effective group alongside the www-data user so newly created RRD files match the existing CI directory ownership. Covers flat and structured RRD paths without changing directory modes or suppressing warnings. Signed-off-by: Thomas Vincent <thomasvincent@gmail.com>
bmfmancini
left a comment
There was a problem hiding this comment.
Reviewed. The workflow change matches the rest of the fleet: non-blocking 8.5/8.6 legs, 8.6 from the Ondřej PPA with the coverage gate skipped there, and the poller run as www-data with the runner group. All checks are green, including both new legs.
ubuntu-latest has rolled to Ubuntu 26.04 (Resolute). Ondrej Surys Launchpad PPA (ppa:ondrej/php) has no Release file for the resolute suite yet (it is migrating to packages.sury.org), so apt-get update 404s and the experimental 8.6 PPA toolchain install dies with exit code 100. Pin the experimental 8.6 leg to ubuntu-24.04 (Noble), which still serves the latest packaged 8.6 release candidate from the PPA. The other legs use shivammathur/setup-php and are unaffected. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Move PHP 8.5 from the non-blocking experimental include leg into the required base matrix. 8.5 is a stable release provisioned via shivammathur/setup-php like the other required legs, so it no longer needs continue-on-error. Only PHP 8.6 (still a pre-release installed from Ondrej Surys PPA, pinned to ubuntu-24.04) remains experimental. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|




What
Adds PHP 8.5 as a required leg and PHP 8.6 as a non-blocking (experimental) leg to the plugin integration-test matrix, mirroring the method used in Cacti/cacti#8633.
How
continue-on-error: ${{ matrix.experimental }}to the job andexperimental: [false]to the base matrix.8.5to the required base matrix and keep aninclude:leg for8.6withexperimental: true, so only the bleeding-edge 8.6 toolchain can ever turn CI red.shivammathur/setup-phpas usual.undefined symbol: smart_str_ferealloc/_safe_femalloc), so the 8.6 leg provisions a coherent CLI from Ondrej Sury's PPA instead, keeping the CLI on one ABI-matched build.php8.6-xdebugbuild yet, so the patch-coverage gate (which needs a coverage driver) is skipped on the 8.6 leg only; the 8.5 leg keeps it via setup-php's xdebug.Notes
Co-authored-by: Copilot 223556219+Copilot@users.noreply.github.com