Repository navigation
ci: add PHP 8.5 and non-blocking PHP 8.6 matrix legs - #19
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. They run on the pinned Cacti 1.2.x lane. 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 changed-line 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 coverage without a driver, triggering a PHPUnit warning that fails the step and skips integration tests.
1 open issue
What changed in this PR
Extends the plugin’s CI matrix with non-blocking PHP 8.5 and 8.6 jobs on the pinned Cacti 1.2.x lane, preserving existing required checks.
Changes:
- Adds experimental matrix entries with job-level
continue-on-error. - Provisions PHP 8.6 through Ondřej Surý’s PPA instead of
setup-php. - Skips the changed-line coverage gate on PHP 8.6 because that leg lacks a coverage driver.
| File | Description |
|---|---|
.github/workflows/plugin-ci-workflow.yml |
Adds experimental PHP jobs, dedicated 8.6 provisioning, and a conditional coverage gate. |
Review effort: Balanced
Cacti core's composer.json requires ext-gmp, ext-ldap and ext-sqlite3, so composer install failed on the experimental 8.6 PPA leg where those were not installed. Add them (and snmp) to match the extensions the other legs provide. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.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>
PHPStan level 6 flags \ as possibly undefined. Use \[argv], which is always populated under the CLI SAPI regardless of register_argc_argv. 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 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, running on the pinned Cacti 1.2.x lane.shivammathur/setup-phpas usual.php8.6-xdebugbuild yet, so the changed-line coverage gate is skipped on the 8.6 leg only.Notes
Co-authored-by: Copilot 223556219+Copilot@users.noreply.github.com