deb: skip pg_auto_failover community repo bootstrap on non-amd64 (unblock arm64 debs) - #1216
Open
ibrahim halatci (ihalatci) wants to merge 2 commits into
Open
deb: skip pg_auto_failover community repo bootstrap on non-amd64 (unblock arm64 debs)#1216ibrahim halatci (ihalatci) wants to merge 2 commits into
ibrahim halatci (ihalatci) wants to merge 2 commits into
Conversation
The deb builder image bootstrap runs the PackageCloud community installer (install.citusdata.com/community/deb.sh) solely to add pg_auto_failover repos. On non-x86_64 arches that installer hard-aborts ("the Citus repository does not contain packages for non-x86_64 architectures", exit 123), failing the "Build arm64 builder image" step before any build/sign/publish and blocking all arm64 (.deb) legs.
Guard the step on `dpkg --print-architecture` so it runs only on amd64 and becomes a no-op elsewhere. amd64 behavior is unchanged: the installer still runs and a failure still fails the build.
Regenerated the 6 live deb dockerfiles from templates/Dockerfile-deb.tmpl. Companion arm64 fix to #1204.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
… images Apply the same amd64-only guard to the 4 deb dockerfiles that are not in os-list.csv / the arm64 build matrix (debian-buster, debian-stretch, ubuntu-bionic, ubuntu-focal) so the full deb dockerfile set stays in lockstep with templates/Dockerfile-deb.tmpl and matches the file set touched by #1204. stretch keeps its existing packagecloud.io installer URL; only the amd64 guard + comment are added. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
ibrahim halatci (ihalatci)
marked this pull request as ready for review
September 3, 2026 11:12
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.
What / why
The deb builder image bootstrap unconditionally runs the PackageCloud community installer solely to add the
pg_auto_failoverrepos:On non-
x86_64arches that installer hard-aborts:(exit
123), so theRUNfails before any debsign / build / publish. This is a bootstrap deadlock: we can't build arm64 packages because building the arm64 builder image itself refuses on arm64, because the community repo has no arm64 packages. It blocks all arm64 (.deb) legs — nightly and release.Now that the org variable
DEB_BUILD_MULTI_ARCHistrue, the develop community-nightlies armed the gated arm64 legs, and every arm64.debleg fails at this step.Evidence: run 33705146211, job
Build package (debian/bookworm, arm64), stepBuild arm64 builder image— fails with the error above.The fix
Guard the step on the Debian architecture so it runs only on amd64 and becomes a no-op elsewhere:
A || B | bash && Cgroups as((A || (curl | bash)) && rm -rf …):Ais false →curl | bashruns exactly as before; if it fails theRUNstill fails. amd64 behavior is byte-for-byte unchanged.Ais true →curl | bashis skipped →rm -rfruns → the step succeeds as a no-op.This step exists only for
pg_auto_failover(per its comment) and is not needed for the citus arm64 build.Scope
templates/Dockerfile-deb.tmpl.debian-{bullseye,bookworm,trixie},ubuntu-{jammy,noble,resolute}) are whatos-list.csv/./update_dockerfilesregenerate and what the arm64 build matrix actually builds; the other 4 (debian-buster,debian-stretch,ubuntu-bionic,ubuntu-focal) are kept consistent even though they are not currently in the build matrix.debian-stretchalready used the olderpackagecloud.io/.../script.deb.shinstaller URL (a pre-existing divergence from the template that deb: install jq from distro package so deb builder images work on arm64 #1204 did not normalize). Only the amd64 guard + comment were added there; its installer URL is left unchanged to keep this change minimal and focused on the arm64 fix.Validation
A || B | bash && Cprecedence under/bin/sh(dash, the DockerfileRUNshell):rmruns, exit 0 (no-op success).rmruns, exit 0 (unchanged).rmskipped, exit 1 (RUN still fails — unchanged).Notes
jqdistro-package fix; same file family, basedevelop).