Skip to content

feat: add release workflow with Homebrew and .deb packaging - #40

Merged
mrpollo merged 3 commits into
mainfrom
feat/release-workflow
Mar 10, 2026
Merged

feat: add release workflow with Homebrew and .deb packaging#40
mrpollo merged 3 commits into
mainfrom
feat/release-workflow

Conversation

@mrpollo

@mrpollo mrpollo commented Mar 10, 2026

Copy link
Copy Markdown
Contributor

Add asset path resolution for installed builds and a tag-triggered release workflow.

Asset path module (src/asset_path.c):

  • Resolves assets via user data dir → install prefix → relative fallback
  • macOS: ~/Library/Application Support/mavsim-viewer/
  • Linux: $XDG_DATA_HOME/mavsim-viewer/
  • Compile-time MAVSIM_INSTALL_DATADIR for system installs
  • Dev builds unchanged (relative path fallback)

Release workflow (.github/workflows/release.yml):

  • Triggered by version tags (v*)
  • Creates source tarball with submodule baked in
  • Builds Homebrew bottles for macOS arm64 (macos-14) and x86_64 (macos-13)
  • Builds .deb for Linux amd64 with smoke test
  • Publishes GitHub Release with all artifacts
  • Updates mavlink/homebrew-tap formula with bottle hashes

CMake install rules:

  • Binary → bin/mavsim-viewer
  • Assets → share/mavsim-viewer/{models,shaders,fonts,textures}/
  • CPack DEB config with runtime X11/GL dependencies

Requires: HOMEBREW_TAP_TOKEN secret (already configured)

Users install via:

brew install mavlink/tap/mavsim-viewer

or on Linux:

sudo dpkg -i mavsim-viewer_x.y.z_amd64.deb

mrpollo added 3 commits March 9, 2026 20:41
Add asset_path module that resolves asset paths with fallback:
1. User data dir (~/Library/Application Support/ on macOS, XDG_DATA_HOME on Linux)
2. System install dir (compile-time MAVSIM_INSTALL_DATADIR)
3. Relative path (dev/build fallback)

Update all asset load sites in scene, hud, and vehicle to use asset_path().
Add CMake install() rules for binary and assets.
Release workflow triggered by version tags (v*):
- Creates source tarball with submodule baked in
- Builds Homebrew bottles for macOS arm64 and x86_64
- Publishes GitHub Release with all artifacts
- Updates mavlink/homebrew-tap formula with bottle hashes

Requires HOMEBREW_TAP_TOKEN secret for tap repo access.
Add CPack DEB configuration to CMakeLists.txt with runtime dependencies
for X11/GL. Add deb-amd64 job to release workflow that builds, smoke
tests, and uploads .deb to the GitHub Release.
@mrpollo
mrpollo merged commit 2149d48 into main Mar 10, 2026
5 checks passed
@mrpollo
mrpollo deleted the feat/release-workflow branch March 10, 2026 17:05
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