ci: add multi-platform release workflow (extension + CLI + desktop)#21
Merged
Conversation
Builds and attaches all shippable artifacts to a GitHub Release on a version tag (or manual dispatch for an existing tag): - Extension: sukoon-extension.zip (wasm-pack + vite bundle) - CLI: linux/macOS/Windows binaries (cargo build --features onnx) - Desktop: .dmg / .msi / .AppImage via tauri-action (per-OS matrix) Each platform builds on its own runner (Tauri/CLI installers can't be cross-compiled), so a tagged release now ships everything, not just the extension. fail-fast is off so one platform's failure doesn't block the rest.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
The
v0.1.0-alpharelease only had the extension zip. Desktop installers and CLI binaries are per-OS (Tauri.msi/.dmg/.AppImageand native binaries can't be cross-compiled from one machine), so producing them needs a CI matrix.What this adds
.github/workflows/release.yml— on av*tag (or manual dispatch for an existing tag), builds and attaches:sukoon-extension.zippnpm --filter @sukoon/extension package(wasm-pack + vite)cargo build --release -p sukoon-cli --features onnxtauri-apps/tauri-action.AppImage·.dmg·.msireleasejob creates the prerelease (or reuses an existing tag's release), then each build job uploads to it.fail-fast: false— one platform failing doesn't block the others.After merge — to populate the current release
Run it manually against the existing tag: Actions → Release → Run workflow →
v0.1.0-alpha(or push a new tag). The first run is the real test — alpha desktop/CLI builds may surface a dep or config fix, which I'll iterate on.Notes / future
🤖 Generated with Claude Code