ci: add linux-arm64 (aarch64) prebuilt release target (#316)

* ci: add linux-arm64 (aarch64) prebuilt release target

Build an omnigraph-linux-arm64 archive in both the tagged-release and
edge-release matrices on the ubuntu-24.04-arm runner, and teach the
install script to map Linux/aarch64 to the new asset. Update the install
and CI docs to list the new platform.

Previously aarch64 Linux hit the install-script arch guard
("no prebuilt binary is available for Linux/aarch64") and could only
build from source; it is now a first-class prebuilt target.

* ci: emit a linux-arm64 bottle in the Homebrew formula

The formula generator only resolved macos-arm64 and linux-x86_64 and
emitted `on_linux { on_intel }`, so `brew install` on Linux/aarch64 had
no URL/sha and failed even though the release now ships an
omnigraph-linux-arm64 archive. Resolve that asset's digest and add an
`on_arm` block under `on_linux` so the documented Homebrew path matches
the new prebuilt target.
This commit is contained in:
Ragnor Comerford 2026-06-29 22:55:44 +02:00 committed by GitHub
parent b20d7bb82e
commit d50d94f89b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 17 additions and 3 deletions

View file

@ -35,6 +35,9 @@ platform_asset_name() {
Linux/x86_64)
printf 'omnigraph-linux-x86_64.tar.gz\n'
;;
Linux/aarch64)
printf 'omnigraph-linux-arm64.tar.gz\n'
;;
Darwin/arm64)
printf 'omnigraph-macos-arm64.tar.gz\n'
;;

View file

@ -47,11 +47,13 @@ RELEASE_JSON="$(gh release view "$TAG" --repo "$REPO_SLUG" --json assets)"
MACOS_ARM_URL="https://github.com/${REPO_SLUG}/releases/download/${TAG}/omnigraph-macos-arm64.tar.gz"
LINUX_X86_URL="https://github.com/${REPO_SLUG}/releases/download/${TAG}/omnigraph-linux-x86_64.tar.gz"
LINUX_ARM_URL="https://github.com/${REPO_SLUG}/releases/download/${TAG}/omnigraph-linux-arm64.tar.gz"
MACOS_ARM_SHA="$(asset_digest "$RELEASE_JSON" "omnigraph-macos-arm64.tar.gz")"
LINUX_X86_SHA="$(asset_digest "$RELEASE_JSON" "omnigraph-linux-x86_64.tar.gz")"
LINUX_ARM_SHA="$(asset_digest "$RELEASE_JSON" "omnigraph-linux-arm64.tar.gz")"
for value in "$MACOS_ARM_SHA" "$LINUX_X86_SHA"; do
for value in "$MACOS_ARM_SHA" "$LINUX_X86_SHA" "$LINUX_ARM_SHA"; do
if [[ -z "$value" ]]; then
printf 'error: failed to resolve one or more release asset digests for %s\n' "$TAG" >&2
exit 1
@ -86,6 +88,10 @@ class Omnigraph < Formula
url "${LINUX_X86_URL}"
sha256 "${LINUX_X86_SHA}"
end
on_arm do
url "${LINUX_ARM_URL}"
sha256 "${LINUX_ARM_SHA}"
end
end
def install