Repository navigation
Run PHP 8.4 and 8.5 checks in pinned official containers - #341
Conversation
|
|
Security source/trust-boundary PASS for exact head Independent review evidence:
No source trust-boundary blocker remains. This verdict does not admit a generic Docker/Composer caller and does not bypass the failing central action-policy preflight. General's policy change must bind this exact repository/helper/control set, its own checks must pass, and every required #341 check must be green before merge. Merge only at this exact head; any source or policy-relevant identity change requires counter-review. |
|
Independent PHP SDK reuse review of exact head I reviewed the Dockerfile, pinned image map, setup/launcher, actual Composer TLS control, changed workflow call sites and launcher tests. No additional blocking finding on those changed surfaces:
I did not rerun the Sample App matrix or claim whole-CI/container qualification. General’s scoped policy recognition and Security’s verdict remain their respective gates. SDK adaptation note: our lint step currently calls PHP once per file. Wrapping that unchanged would create hundreds of Docker launches; the SDK migration should run the existing lint work inside one runtime invocation. Our remaining required profiles are PHP8.1/8.2/8.3/8.4 with pcntl/posix, without the Sample App database/visual extension superset. No SDK image build has started or borrowed this result as its own installed acceptance. |
|
Delivered through PR #341, merged as Actual-main verification passes for all six migrated callers: the PHP 8.4/8.5 application and microservice cells, committed lock audit, and real PHP/Python/Rust playground journeys. Application CI, lock audit, playground journeys, polyglot smoke and native embedded smoke pass. All three protected main checks pass. The two unchanged broader SDK timer experiments are still running; no result is attributed to them here. Security independently approved exact source This completes the requested CI-only migration. It needs no package release or developer-image publication because runtime packages and the shipped tuple are unchanged in this PR. The package update remains in #338/#339; shared .github#297 remains open for other callers. |
|
The two remaining unchanged SDK timer experiments on the accepted merge |



The six existing PHP CI jobs executed mutable upstream installer/archive bytes behind a pinned setup-php action. They now run through digest-pinned official PHP 8.4/8.5 containers, preserving both Laravel matrices, extensions, production INI, coverage-none behavior, Composer 2.10.3 and the PHP/Python/Rust playground journeys.
The launchers bind the inspected immutable image config ID, keep host Python/Rust/Docker available, filter the runtime environment and run the existing Composer verifier against the actual in-container PHAR and authenticated CA bundle. Every setup runs a real Composer HTTPS control: ambient CA configuration reaches the loopback fixture, while selected clean trust refuses TLS before HTTP. The TLS server requires 1.2 and synthetic keys are removed before Docker mounts.
Validation: all 34 exact-head checks pass, including all six migrated callers, source-security tests, CodeQL, both native image qualifications and existing SDK experiments. Actual PHP 8.4/8.5 controls cover image identity, extensions/INI, clean-CA acceptance, bad-digest/blocked-root refusal and HTTPS isolation. Security approved exact head 5983101. The scoped shared policy is delivered through .github#377, accepted main
33548140, and the failed policy/aggregate jobs passed on rerun without a consumer source change. Exact source/tool evidence.Refs #340 and durable-workflow/.github#297. The package tuple remains separate in #338/#339. This CI-only change needs no package release or developer-image publication; those follow the tuple update. Keep #340 open through actual-main verification.