ci: add gated arm64 (.deb) release leg to all-citus (citus -> citusdata/community) - #1205
Draft
ibrahim halatci (ihalatci) wants to merge 1 commit into
Draft
ci: add gated arm64 (.deb) release leg to all-citus (citus -> citusdata/community)#1205ibrahim halatci (ihalatci) wants to merge 1 commit into
ibrahim halatci (ihalatci) wants to merge 1 commit into
Conversation
Add an arm64 leg to the release build+publish workflow, gated behind the DEB_BUILD_MULTI_ARCH repo variable (default OFF), so amd64 release builds are byte-for-byte unchanged until the gate is flipped. - arch matrix dimension: ["amd64"] by default, ["amd64","arm64"] when the gate is on; arm64 is excluded for the RPM platforms (el/8, el/9, ol/8, ol/9). - arm64 legs run on native ubuntu-24.04-arm runners. - The arm64 builder + debsigner images are not published to Docker Hub yet, so build them in-job by cloning develop's tooling (this branch carries none): TEST=false ./update_image builds citus/packaging:<distro>-all, and debsigner is built from develop's Dockerfile. "docker run" has no --platform and prefers a local image, so citus_package picks up the native arm64 images automatically; amd64 keeps pulling the published images from Docker Hub. Requires the develop jq fix (#1204) so the cloned deb builder images work on arm64. Part of Track 2 of citusdata/citus#8612. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 0259dd2c-9208-48f9-a8c2-8031dca8ab75
This was referenced Aug 12, 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.
What / why
Adds a gated arm64
.debrelease leg to theall-citusrelease build+publish workflow soarm64
cituspackages land incitusdata/community— the apt index that feeds the stableDebian Citus Docker images (
postgres-16/17/18,latest). This is the release counterpart to themerged nightly leg #1198 (which only feeds
community-nightlies).Part of Track 2 of citusdata/citus#8612 (ARM64 Debian Docker images).
The gate (amd64 unchanged)
Everything arm64 is behind the
DEB_BUILD_MULTI_ARCHrepo variable, default OFF:arch = ["amd64"]→ the matrix isplatform × ["amd64"], every leg runson
ubuntu-latest, and allif: matrix.arch == 'arm64'steps are skipped. The existing amd64release pipeline is byte-for-byte unchanged.
el/8, el/9, ol/8, ol/9areexcluded — arm64 RPM parity is out of scope), running on nativeubuntu-24.04-armrunners.upload_to_package_cloudonly publishes whencurrent_branch == all-citus.How the arm64 leg builds (Option B — in-job image build)
The release workflow runs from the
all-citusbranch, which carries no build tooling(
update_image,dockerfiles/,scripts/). Rather than touch develop's shared amd64image-publish path, the arm64 leg builds its builder + signer images in-job by cloning
develop's tooling:
TEST=false ./update_image→ buildscitus/packaging:<distro>-allnatively on arm64.docker build … dockerfiles/debsigner/Dockerfile→ buildscitusdata/packaging:debsigner.citus_package'sdocker runhas no--platformflag and prefers a local image, so thenative arm64 images are picked up automatically. amd64 keeps pulling the published images from
Docker Hub (the Docker Hub login step is itself gated to arm64, so amd64 is untouched).
Scope (surgical)
One file:
.github/workflows/build-package.yml(+41 / −1). No changes todebian/control.in(already
Architecture: any), the deb entrypoint, or the upload script → version strings areidentical to amd64 by construction (
14.1.0.citus-1, …), satisfying the Docker exact-version pins.Prerequisite
Requires the develop jq fix #1204 to be merged first — the arm64 builder
images are cloned from develop, and the amd64-only
jq-linux64binary hard-fails on arm64 in therelease path. Nothing here runs until both #1204 is merged and the operator flips
DEB_BUILD_MULTI_ARCHon.Guardrails
DEB_BUILD_MULTI_ARCHunset ⇒ amd64 only.debian-hllanddebian-topn.