mirror of
https://github.com/ModernRelay/omnigraph.git
synced 2026-07-18 03:31:02 +02:00
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:
parent
b20d7bb82e
commit
d50d94f89b
6 changed files with 17 additions and 3 deletions
2
.github/workflows/release-edge.yml
vendored
2
.github/workflows/release-edge.yml
vendored
|
|
@ -41,6 +41,8 @@ jobs:
|
||||||
include:
|
include:
|
||||||
- runner: ubuntu-latest
|
- runner: ubuntu-latest
|
||||||
asset_name: omnigraph-linux-x86_64
|
asset_name: omnigraph-linux-x86_64
|
||||||
|
- runner: ubuntu-24.04-arm
|
||||||
|
asset_name: omnigraph-linux-arm64
|
||||||
- runner: macos-14
|
- runner: macos-14
|
||||||
asset_name: omnigraph-macos-arm64
|
asset_name: omnigraph-macos-arm64
|
||||||
- runner: windows-latest
|
- runner: windows-latest
|
||||||
|
|
|
||||||
2
.github/workflows/release.yml
vendored
2
.github/workflows/release.yml
vendored
|
|
@ -35,6 +35,8 @@ jobs:
|
||||||
include:
|
include:
|
||||||
- runner: ubuntu-latest
|
- runner: ubuntu-latest
|
||||||
asset_name: omnigraph-linux-x86_64
|
asset_name: omnigraph-linux-x86_64
|
||||||
|
- runner: ubuntu-24.04-arm
|
||||||
|
asset_name: omnigraph-linux-arm64
|
||||||
- runner: macos-14
|
- runner: macos-14
|
||||||
asset_name: omnigraph-macos-arm64
|
asset_name: omnigraph-macos-arm64
|
||||||
- runner: windows-latest
|
- runner: windows-latest
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,6 @@
|
||||||
- **AWS feature build job**: `cargo build/test -p omnigraph-server --features aws` on ubuntu-latest.
|
- **AWS feature build job**: `cargo build/test -p omnigraph-server --features aws` on ubuntu-latest.
|
||||||
- **Windows binary build job**: `cargo build --release --locked -p omnigraph-cli -p omnigraph-server` on windows-latest with smoke checks for `omnigraph.exe version`, `omnigraph-server.exe --help`, and PowerShell installer syntax.
|
- **Windows binary build job**: `cargo build --release --locked -p omnigraph-cli -p omnigraph-server` on windows-latest with smoke checks for `omnigraph.exe version`, `omnigraph-server.exe --help`, and PowerShell installer syntax.
|
||||||
- **RustFS S3 integration**: spins up RustFS in Docker, runs `s3_storage`, `server_opens_s3_graph_directly_and_serves_snapshot_and_read`, and `local_cli_s3_end_to_end_init_load_read_flow`.
|
- **RustFS S3 integration**: spins up RustFS in Docker, runs `s3_storage`, `server_opens_s3_graph_directly_and_serves_snapshot_and_read`, and `local_cli_s3_end_to_end_init_load_read_flow`.
|
||||||
- **release-edge.yml**: on every push to main, retags `edge`, builds Linux x86_64 / macOS arm64 archives and Windows x86_64 zip + sha256, publishes a rolling prerelease, then smoke-tests the Windows PowerShell installer against `edge`.
|
- **release-edge.yml**: on every push to main, retags `edge`, builds Linux x86_64 / Linux arm64 / macOS arm64 archives and Windows x86_64 zip + sha256, publishes a rolling prerelease, then smoke-tests the Windows PowerShell installer against `edge`.
|
||||||
- **release.yml**: on `v*` tags, builds the Linux x86_64 / macOS arm64 archives and Windows x86_64 zip release matrix, updates the Homebrew tap (`scripts/update-homebrew-formula.sh`) by pushing the regenerated formula to `ModernRelay/homebrew-tap`, and smoke-tests the Windows PowerShell installer against the tag.
|
- **release.yml**: on `v*` tags, builds the Linux x86_64 / Linux arm64 / macOS arm64 archives and Windows x86_64 zip release matrix, updates the Homebrew tap (`scripts/update-homebrew-formula.sh`) by pushing the regenerated formula to `ModernRelay/homebrew-tap`, and smoke-tests the Windows PowerShell installer against the tag.
|
||||||
- **package.yml**: manual ECR image build; emits two image tags per commit (`<sha>`, `<sha>-aws`) via CodeBuild.
|
- **package.yml**: manual ECR image build; emits two image tags per commit (`<sha>`, `<sha>-aws`) via CodeBuild.
|
||||||
|
|
|
||||||
|
|
@ -121,6 +121,7 @@ Copy-Item target\release\omnigraph-server.exe "$env:USERPROFILE\.local\bin\omnig
|
||||||
Tagged releases are expected to publish:
|
Tagged releases are expected to publish:
|
||||||
|
|
||||||
- `omnigraph-linux-x86_64.tar.gz`
|
- `omnigraph-linux-x86_64.tar.gz`
|
||||||
|
- `omnigraph-linux-arm64.tar.gz`
|
||||||
- `omnigraph-macos-arm64.tar.gz`
|
- `omnigraph-macos-arm64.tar.gz`
|
||||||
- `omnigraph-windows-x86_64.zip`
|
- `omnigraph-windows-x86_64.zip`
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -35,6 +35,9 @@ platform_asset_name() {
|
||||||
Linux/x86_64)
|
Linux/x86_64)
|
||||||
printf 'omnigraph-linux-x86_64.tar.gz\n'
|
printf 'omnigraph-linux-x86_64.tar.gz\n'
|
||||||
;;
|
;;
|
||||||
|
Linux/aarch64)
|
||||||
|
printf 'omnigraph-linux-arm64.tar.gz\n'
|
||||||
|
;;
|
||||||
Darwin/arm64)
|
Darwin/arm64)
|
||||||
printf 'omnigraph-macos-arm64.tar.gz\n'
|
printf 'omnigraph-macos-arm64.tar.gz\n'
|
||||||
;;
|
;;
|
||||||
|
|
|
||||||
|
|
@ -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"
|
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_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")"
|
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_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
|
if [[ -z "$value" ]]; then
|
||||||
printf 'error: failed to resolve one or more release asset digests for %s\n' "$TAG" >&2
|
printf 'error: failed to resolve one or more release asset digests for %s\n' "$TAG" >&2
|
||||||
exit 1
|
exit 1
|
||||||
|
|
@ -86,6 +88,10 @@ class Omnigraph < Formula
|
||||||
url "${LINUX_X86_URL}"
|
url "${LINUX_X86_URL}"
|
||||||
sha256 "${LINUX_X86_SHA}"
|
sha256 "${LINUX_X86_SHA}"
|
||||||
end
|
end
|
||||||
|
on_arm do
|
||||||
|
url "${LINUX_ARM_URL}"
|
||||||
|
sha256 "${LINUX_ARM_SHA}"
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def install
|
def install
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue