Repository navigation
ci: add PHP 8.5 and non-blocking PHP 8.6 matrix legs - #101
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 unit-test step still requests Clover coverage without a coverage driver, causing a runner warning that fails the step and skips integration checks despite job-level continue-on-error.
1 open issue
What changed in this PR
Adds experimental PHP 8.5 and 8.6 integration-test coverage for the audit plugin while keeping existing PHP matrix legs blocking.
Changes:
- Adds non-blocking PHP 8.5 and 8.6 matrix entries.
- Provisions PHP 8.6 through Ondřej Surý’s PPA to avoid the reported setup-php extension incompatibility.
- 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 versions, dedicated PHP 8.6 provisioning, and a conditional coverage gate. |
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