Restore the weekly image rebuild - #8
Merged
rmachielse merged 1 commit intoAug 24, 2026
Merged
Conversation
rmachielse
force-pushed
the
feature/swe-510-fix-the-broken-ruby-jemalloc-rebuild-pipeline
branch
from
August 21, 2026 09:07
6a989e3 to
ab42715
Compare
Build-Test-Push has failed every run since 2026-07-13, so the last published image is the 2026-07-09 build and no Ruby release has reached the registry since. The pinned v1.2.3 pulls ruby-version-checker unpinned, and that binary now requires a subcommand, so the action prints its usage text and returns empty versions and metadata. The matrix expands to nothing, build-test-push never runs, and merge-manifests is skipped. v1.2.4 was the conservative choice, but its digest-pinned checker predates Ruby 4.0 and still lists EOL 3.1. v2.0.0 reports 3.2 through 4.0 and is what upstream runs green weekly. It pulls the checker as :latest, so the same class of break can recur, which is survivable only if a failing scheduled run is noticed. SWE-510
rmachielse
force-pushed
the
feature/swe-510-fix-the-broken-ruby-jemalloc-rebuild-pipeline
branch
2 times, most recently
from
August 21, 2026 09:14
a8d62b9 to
8a4e4b3
Compare
lhoBas
approved these changes
Aug 24, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Restores Build-Test-Push, which has failed every run since 2026-07-13 — six consecutive weekly schedules plus every push and PR. The pinned v1.2.3 of
ruby-versions-actionpullsruby-version-checkerunpinned, and that binary now requires a subcommand (checkordocker). Invoked with the old positional arguments it prints its usage text and exits, soversionsandmetadatacome back empty, the matrix expands to nothing,build-test-pushnever runs andmerge-manifestsis skipped.Consequences of the outage:
ghcr.io/feedbackfruits/ruby-jemalloc:3.4.10-slimis still the 2026-07-09 build over a Debian rootfs from 2026-06-23, and every downstream service inherits it. Trivy reports 90 fixable HIGH findings on it, 73 of them linux-libc-dev kernel headers and the rest small and real — libexpat1, curl, util-linux. No Ruby release published since then reached the registry either, so downstream repos cannot adopt one.Pinning to v2.0.0 restores version discovery. A run on this branch built the full matrix green, including Ruby 4.0.6 on both architectures, which has never been through this pipeline before.
Alternatives considered
v1.2.4 is the only release that digest-pins the checker, and it was the first choice for that reason. Its frozen checker turns out to be frozen in its version list too: it reports 3.1.7 through 3.4.10, so Ruby 4.0 would never reach the registry and EOL 3.1 would keep being built and published. A run on this branch confirmed both the fix and that list. v2.0.0 reports 3.2 through 4.0.6, matching what upstream builds green each week.
v2.0.0 pulls the checker as
:latest, so this class of break can recur, and nothing here would announce it. That is a real gap and it is accepted deliberately rather than solved: the six-week outage happened because a failing schedule told nobody, and fixing that needs a channel decision — Slack, matching the API repo's deploy notifications, would need aSLACK_WEBHOOK_URLsecret this repository does not have. Tracked in SWE-510.Syncing the fork wholesale would bring upstream's floating
@v2reference along with floating tags throughout, which the zizmor high/high gate rejects, and three Ubuntu variants for tags nothing consumes. Upstream also still omits the jemallocLD_PRELOADandMALLOC_CONFsettings added here in #1, so their images cannot replace ours.Worth noting for the pinning policy: neither zizmor nor pinact can catch this class of failure. They verify the ref we write, while the break came from a Dockerfile inside the action. A SHA-pinned action is only as pinned as its own base images.
Follow-up
Failure visibility and a reporting-only Trivy scan here, where a finding is actionable because republishing is the fix, are tracked in SWE-510.
Fixes SWE-510