Skip to content

ci: tag static builder images with the release version - #2758

Merged
dunglas merged 1 commit into
php:mainfrom
strikerz5:fix/static-builder-semver-tags
Oct 26, 2026
Merged

dunglas merged 1 commit into
php:mainfrom
strikerz5:fix/static-builder-semver-tags

Conversation

@strikerz5

Copy link
Copy Markdown
Contributor

The v1.13.3 release (run 39954802534) pushed only static-builder-{musl,gnu} and static-builder-{musl,gnu}-sha-ae3d5b9. It never pushed static-builder-{musl,gnu}-1.13.3, -1.13 or -1. Until now those tags have only shown up at the next nightly run.

  • The prepare job only resolves the version on schedule, so on a tag it ran docker buildx bake --print with VERSION: dev, and the manifest tag list had no semver tags. It now uses the tag name when the ref is a tag, the same way docker.yaml already does.
  • "Inspect GNU image" added -gnu to a tag that already ends in gnu, so it inspected a stale static-builder-gnu-gnu image (last updated 2025-03-28) rather than the one just pushed, and passed. The extra suffix is removed.

Tested on a fork with a dispatch on a throwaway v9.9.9 tag: prepare gets VERSION: v9.9.9, and with the same inputs bake --print gives static-builder-gnu, -gnu-9, -gnu-9.9 and -gnu-9.9.9 (the same for musl). The push job was not run.

🤖 Generated with Claude Code

The prepare job only resolved the version on scheduled runs, so tag
pushes and dispatches on a tag computed the image tags with VERSION=dev
and never pushed static-builder-{musl,gnu}-X.Y.Z. Also drop the stale
-gnu suffix in the GNU inspect step, which was inspecting a leftover
static-builder-gnu-gnu image instead of the one just pushed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@henderkes

Copy link
Copy Markdown
Contributor

There's no real reason to do this as the static builder images automatically fetch the newer source, unless I completely misremember.

@strikerz5

strikerz5 commented Oct 25, 2026 •

Copy link
Copy Markdown
Contributor Author

static-builder-gnu-1.13.3 on docker hub was only pushed by the scheduled job https://github.com/php/frankenphp/actions/runs/40045999652/job/120739780095 not the manual release here https://github.com/php/frankenphp/actions/runs/39954802534/job/120440160546 look at the Create GNU manifest list and push in each job... you will see manual release skips full semver tags while scheduled job push full semver tags

@henderkes

Copy link
Copy Markdown
Contributor

That wasn't actually my question, but I can answer it myself: the images actually do embed frankenphp source so the versioned tags serve a purpose... kind of. It's a lot of wasted docker images though.

@dunglas
dunglas merged commit e10bb9a into php:main Oct 26, 2026
26 checks passed
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.

3 participants