Skip to content

ci: bump php-windows-builder to 1.9.0 and dedupe the VS cache save - #18

Merged
iliaal merged 1 commit into
masterfrom
ci/php-windows-builder-1.9.0
Jul 29, 2026
Merged

ci: bump php-windows-builder to 1.9.0 and dedupe the VS cache save#18
iliaal merged 1 commit into
masterfrom
ci/php-windows-builder-1.9.0

Conversation

@iliaal

@iliaal iliaal commented Jul 29, 2026

Copy link
Copy Markdown
Owner

Upstream released 1.9.0 on 2026-07-27. Most of it doesn't reach this repo: 42 of the 71 changed files sit under php/, the PHP-source-builder action we don't use, and the release/ action is byte-identical to 1.8.1.

What actually lands here:

  • php-sdk 2.6.0 to 2.8.1, across all 20 build lanes.
  • Dependency archives now download to a temp path and get removed in a finally, instead of unpacking a zip named after the library into the build directory.
  • extension-matrix emits a per-lane save-vs-cache flag, true for one lane per (os, VS toolset) pair.

That last flag does nothing unless we forward it, since the action's input defaults to true. Our matrix covers two toolsets on windows-2022 (vs16 for 8.1-8.3, vs17 for 8.4-8.5), so wiring it gives 2 savers and 18 restore-only lanes. The PDF lane isn't matrix-driven and shares windows-2022/vs17 with an 8.4 matrix lane, so it's pinned to false.

Run 30447739686 confirms the flag reaches the lanes correctly: 8.1 x64 nts and 8.4 x64 nts get true, the other 18 get false. It is inert in practice right now, because windows-2022 already ships MSVC 14.44.35207 and both vs16 and vs17 resolve to it, so no lane installs a toolset and no lane caches one. The wiring earns its keep when a runner image stops shipping a toolset in range, or when 8.6 brings windows-2025-vs2026 into the matrix. Today's measurable gains are the php-sdk bump and the dependency-archive cleanup.

That same 14.44 reading clears the one behavioral risk I saw in the diff: 1.9.0 caps vs17 at minorMax: 49 where 1.8.1 left it open, and the runner sits inside the new bound.

Checked before pushing: zizmor 1.28.0 under the pedantic persona reports no findings, and every input this workflow passes still exists in the 1.9.0 action definitions. CI exercises all 20 build lanes plus the PDF lane end to end, each running the full phpt suite. The release-upload path can't run from a pull request, but that action carries no delta between the two tags.

The build toolchain moves from php-sdk 2.6.0 to 2.8.1, and dependency
archives now extract from a temp path that gets cleaned up rather than
unpacking a zip named after the library into the build directory.

1.9.0 also has extension-matrix emit a per-lane save-vs-cache flag,
true for exactly one lane per (os, VS toolset) pair. Wiring it into the
build step is what makes it count: the input defaults to true, so
without it all 20 lanes keep racing to write the same VS component
cache. Our matrix spans two toolsets on windows-2022, so 2 lanes save
and 18 restore only. The PDF lane shares windows-2022/vs17 with an 8.4
matrix lane, so it restores only as well.

The release action is byte-identical between 1.8.1 and 1.9.0; the rest
of the release is PHP-source-builder work this repo does not use.
@iliaal
iliaal force-pushed the ci/php-windows-builder-1.9.0 branch from 6914d0c to ef3a887 Compare July 29, 2026 11:36
@iliaal
iliaal merged commit acd94e5 into master Jul 29, 2026
43 checks passed
@iliaal
iliaal deleted the ci/php-windows-builder-1.9.0 branch July 29, 2026 12:02
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.

1 participant