Skip to content

Comments

feat(ci): publish binaries for linux/amd64 and linux/arm64 on release#94

Open
morgaesis wants to merge 18 commits intospacedriveapp:mainfrom
morgaesis:ci/publish-binaries
Open

feat(ci): publish binaries for linux/amd64 and linux/arm64 on release#94
morgaesis wants to merge 18 commits intospacedriveapp:mainfrom
morgaesis:ci/publish-binaries

Conversation

@morgaesis
Copy link

@morgaesis morgaesis commented Feb 21, 2026

Summary

  • Add build-binaries job to compile native binaries for Linux x86_64 and ARM64
  • Publish binaries as GitHub Release assets when a version tag is pushed
  • Use github.repository_owner for dynamic Docker image registry path (fork-friendly)
  • Conditionally run Fly registry push and rollout steps only for upstream org

Changes

Binary builds:

  • Build for x86_64-unknown-linux-gnu on ubuntu-24.04
  • Build for aarch64-unknown-linux-gnu on ubuntu-24.04-arm (native ARM runner)
  • Install protoc for Lance dependency
  • Package as .tar.gz and upload as release assets

Docker improvements:

  • Changed hardcoded ghcr.io/spacedriveapp/spacebot to dynamic ${{ env.REGISTRY }}/${{ github.repository_owner }}/${{ env.IMAGE_NAME }}
  • This allows forks to test the full workflow without permission errors
  • See also: GitHub Guide - Publishing Docker images which uses ${{ github.repository }} for similar dynamic naming

Conditional deployment:

  • Fly registry push and hosted instance rollout only run when github.repository_owner == 'spacedriveapp'

Testing

Tested on fork: https://github.com/morgaesis/spacebot/releases/tag/v0.1.18

@morgaesis morgaesis changed the title ci: publish binaries feat(ci): publish binaries for linux/amd64 and linux/arm64 on release Feb 21, 2026
@Marenz
Copy link
Contributor

Marenz commented Feb 21, 2026

Nice work — the native ARM64 runner is the right call and the fork-friendly registry path is a good touch.

A few suggestions that might help get this merged:

  • The version bump commits (0.1.13 → 0.1.19) look like iteration artifacts from testing on your fork — might be worth dropping those and keeping Cargo.toml out of this PR.
  • Could be worth squashing the commits down — 17 commits for a ~100 line workflow change makes it a bit hard to review.
  • With continue-on-error on the binary builds, a release could be created with missing artifacts silently. Might be worth failing loudly instead so it's obvious when a build didn't produce an artifact.

@morgaesis
Copy link
Author

@Marenz
IMO, squashing does nothing, since the PR commit should be a squash commit in itself, not a merge.

That way, whatever dirty work I make on the journey (the PR is the journey), the only commit that matters is the squashed commit on main.


Working on the rest, though. Thanks for the feedback ❤️

@morgaesis
Copy link
Author

morgaesis commented Feb 21, 2026

@Marenz, updated according to your suggestions, except for squashing. LMK if you really want this PR squashed.

There is no continue-on-error 🕵️

How do you review code? I find it odd to review individual commits, the thing that matters to me is the diff that enters main, regardless of how we got there. So, when I review, I just check the diff, and maybe the diff since last review; I don't find value in looking at individual commits by others, but maybe that's a mindset I need to change 🤔

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.

2 participants