Skip to content

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

Merged
TheWitness merged 5 commits into
mainfrom
ci/add-php-8.5-8.6-matrix
Nov 9, 2026
Merged

TheWitness merged 5 commits into
mainfrom
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 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, running on the pinned Cacti 1.2.x lane.
  • 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, 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 is skipped on the 8.6 leg only.

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

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

sonarqubecloud Bot commented Nov 9, 2026

Copy link
Copy Markdown

@TheWitness
TheWitness merged commit 7ca72a6 into main Nov 9, 2026
13 checks passed
@TheWitness
TheWitness deleted the ci/add-php-8.5-8.6-matrix branch November 9, 2026 14:53
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.

4 participants