Skip to content

ci: add PHP 8.5 and non-blocking PHP 8.6 matrix legs - #101

Merged
TheWitness merged 4 commits into
developfrom
ci/add-php-8.5-8.6-matrix
Nov 8, 2026
Merged

TheWitness merged 4 commits into
developfrom
ci/add-php-8.5-8.6-matrix

Conversation

@TheWitness

@TheWitness TheWitness commented Nov 7, 2026 •

Copy link
Copy Markdown
Member

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

  • Add continue-on-error: ${{ matrix.experimental }} to the job and experimental: [false] to the base matrix.
  • Add 8.5 to the required base matrix and keep an include: leg for 8.6 with experimental: true, so only the bleeding-edge 8.6 toolchain can ever turn CI red.
  • 8.5 is provisioned through shivammathur/setup-php as usual.
  • 8.6 is still pre-release; the setup-php nightly ships ABI-skewed bundled extensions (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.
  • 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.

Notes

  • Only the 8.6 leg is non-blocking; 8.5 now runs as a required leg, so a genuine 8.5 regression fails CI. The experimental 8.6 leg still never blocks required checks.
  • Any genuine deprecation failures surfaced by the 8.5/8.6 legs are addressed in follow-up commits on this branch.

Co-authored-by: Copilot 223556219+Copilot@users.noreply.github.com

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>
Copilot AI balanced review requested due to automatic review settings November 7, 2026 20:46

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 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
bmfmancini previously approved these changes Nov 8, 2026

@bmfmancini bmfmancini left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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>
@sonarqubecloud

sonarqubecloud Bot commented Nov 8, 2026

Copy link
Copy Markdown

@TheWitness TheWitness changed the title ci: add non-blocking PHP 8.5 and 8.6 matrix legs ci: add PHP 8.5 and non-blocking PHP 8.6 matrix legs Nov 8, 2026
@TheWitness
TheWitness merged commit 921906a into develop Nov 8, 2026
9 checks passed
@TheWitness
TheWitness deleted the ci/add-php-8.5-8.6-matrix branch November 8, 2026 21:48
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.

5 participants