Skip to content

feat(ci): build, smoke-test and release binaries for linux and macOS - #2

Closed
jackmarsh wants to merge 1 commit into
masterfrom
LIM-4039-ci-release-builds
Closed

jackmarsh wants to merge 1 commit into
masterfrom
LIM-4039-ci-release-builds

Conversation

@jackmarsh

@jackmarsh jackmarsh commented Oct 7, 2026 •

Copy link
Copy Markdown
Collaborator

Why

Releases are built by hand with release/release.sh on whoever's machine, so darwin_arm64 assets exist only where someone happened to build on a Mac. There's no psql-ai darwin build after 15.x, so postgres_ai_binary(version = "17.6") 404s on Apple Silicon.

What

  • .github/workflows/release.yaml builds every version under binaries/ on:

    • ubuntu-24.04 → linux_x86_64. Pinned, not -latest: the binaries link the runner's libicu74 and glibc 2.38, which is what existing consumers already run.
    • macos-14 → darwin_arm64.

    It smoke-tests every tarball and uploads them as artifacts. On a v* tag it publishes one release, only if every build and test passed and the tag matches RELEASE_VERSION. It runs on PRs and on pushes to master too, so a broken build shows up before anyone tags.

  • release/smoke_test.sh unpacks a tarball, initdbs, starts postgres, and creates uuid-ossp and pg_stat_statements, plus vector and age (with create_graph) for AI.

  • make -j<cores>: a serial 17.6 AI build takes ~16 CPU-minutes, which is too close to the old 20-minute rule timeout on a runner. The timeout is now 60.

  • RELEASE_VERSION → v0.0.6, for the first CI-built release.

  • README: how to release.

Tested

  • Locally on Linux: ./pleasew build //binaries/v17.6/... (1m45s with -j), and both tarballs pass smoke_test.sh.
  • smoke_test.sh also passes on the existing v0.0.5 psql-ai-17.6-linux_x86_64 asset.
  • The macOS jobs are only tested by this PR's CI run. They show whether AGE and pgvector build on macOS for 16+.

After merge

Tag the release: git tag v0.0.6 && git push origin v0.0.6.

Known gap: the darwin build still links Homebrew icu4c and readline from /opt/homebrew (only libpq's install name is rewritten), so Mac users need them installed. That's out of scope here.

🤖 Generated with Claude Code

…(LIM-4039)

Releases were built by hand with release/release.sh, so darwin_arm64 assets
exist only where someone happened to build on a Mac: no AI build after 15.x,
which breaks every nim SAT in labs on a Mac.

The Release binaries workflow builds every version under binaries/ on
ubuntu-24.04 (pinned: the Linux binaries link the runner's libicu74 and
glibc, matching the Ubuntu 24.04 RBE workers) and macos-14, smoke-tests each
tarball (initdb, start, create the extensions it ships), and on a v* tag
publishes one release only if every build passed and the tag matches
RELEASE_VERSION.

make now runs -j<cores>: a serial 17.6 AI build is ~16 CPU-minutes, too close
to the old 20-minute rule timeout on a CI runner (now 60).

RELEASE_VERSION -> v0.0.6, for the first CI-built release.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@jackmarsh jackmarsh closed this Oct 7, 2026
@jackmarsh
jackmarsh deleted the LIM-4039-ci-release-builds branch October 7, 2026 14:43
@jackmarsh jackmarsh changed the title feat(ci): build, smoke-test and release binaries for linux and macOS (LIM-4039) feat(ci): build, smoke-test and release binaries for linux and macOS Oct 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant