ci: add gated arm64 (.deb) release leg to debian-hll (hll -> citusdata/community) - #1206
Draft
ibrahim halatci (ihalatci) wants to merge 1 commit into
Draft
ci: add gated arm64 (.deb) release leg to debian-hll (hll -> citusdata/community)#1206ibrahim halatci (ihalatci) wants to merge 1 commit into
ibrahim halatci (ihalatci) wants to merge 1 commit into
Conversation
Adds a gated arm64 .deb release leg so arm64 hll packages publish to citusdata/community (the apt index feeding the stable Debian Citus images). Mirrors the merged nightly pattern (#1198) and the all-citus release leg (#1205). Everything arm64 is behind the DEB_BUILD_MULTI_ARCH repo variable (default OFF): with the gate unset the matrix stays amd64-only and the existing release pipeline is byte-for-byte unchanged. When the gate is on, arm64 runs on native ubuntu-24.04-arm runners and builds the builder + debsigner images in-job by cloning develop's tooling (this branch carries none). citus_package's docker run has no --platform flag and prefers a local image, so the native arm64 images are used automatically; amd64 keeps pulling the published images from Docker Hub. The matrix is deb-only so no RPM exclude block is needed. One file touched; no changes to debian/control.in (already Architecture: any), the deb entrypoint, or the upload script -> version strings are identical to amd64 by construction. Requires the develop jq fix (#1204) merged first for the arm64 builder images to build. Nothing runs until #1204 lands and the gate is flipped. Part of Track 2 of citusdata/citus#8612 (ARM64 Debian Docker images). Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 0259dd2c-9208-48f9-a8c2-8031dca8ab75
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 thedebian-hllrelease build+publish workflow soarm64
hllpackages land incitusdata/community— the apt index that feeds the stableDebian Citus Docker images.
hllis a stable Citus dependency (hll=2.19.citus-1), pinned by theDocker images, so it must ship arm64 for the images to install on arm64.
Mirrors the merged nightly leg #1198 and the all-citus release leg
#1205. 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"]→ matrix =platform × ["amd64"], every leg onubuntu-latest, allif: matrix.arch == 'arm64'steps skipped. Existing amd64 pipeline isbyte-for-byte unchanged.
ubuntu-24.04-armrunners. The matrix is deb-only, so noRPM
excludeblock is needed.upload_to_package_cloudonly publishes whencurrent_branch == debian-hll.How the arm64 leg builds (Option B — in-job image build)
The release workflow runs from the
debian-hllbranch, which carries no build tooling. Thearm64 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.The same
citus/packaging:<distro>-allbuilder image builds all three projects (citus/hll/topn) —the package inputs are mounted at runtime.
citus_package'sdocker runhas no--platformflag and prefers a local image, so the native arm64 images are picked up automatically. amd64
keeps pulling the published images from Docker Hub (Docker Hub login is itself gated to arm64).
Scope (surgical)
One file:
.github/workflows/build-package.yml(+31 / −1). No changes todebian/control.in(already
Architecture: any), the deb entrypoint, or the upload script → version strings areidentical to amd64 by construction (
hll=2.19.citus-1), satisfying the Docker exact-version pins.Prerequisite
Requires the develop jq fix #1204 merged first (arm64 builder images are
cloned from develop). Nothing here runs until both #1204 is merged and the operator flips
DEB_BUILD_MULTI_ARCHon.Guardrails
DEB_BUILD_MULTI_ARCHunset ⇒ amd64 only.