GitHub Repository Migration Plan
Branch And Protection Strategy
- Keep
mainas the default branch. - Require the
CIworkflow before merge. - Protect
mainagainst force-push. - Require pull requests for direct changes to release workflows and installer config.
Workflows
ci.yml
- Runs on pushes and pull requests against
main. - Installs Node 22, Rust stable, and Linux desktop build dependencies.
- Runs:
npm ci- shared typecheck
- desktop typecheck
- shared tests
- desktop tests
- Rust tests
- desktop production build
- firmware compile
release.yml
- Triggers on semantic version tags such as
v0.6.1. - Uses
tauri-apps/tauri-actionto build installers for:- Windows
- Linux (
deb,rpm,AppImage) - macOS
- Builds the Arduino firmware separately and uploads the compiled artifacts to the same release.
- Generates Arch packaging metadata and uploads it to the same release:
PKGBUILD+.SRCINFOfor source build (ioruba-desktop)PKGBUILD-bin+.SRCINFO-binfor AppImage-based install (ioruba-desktop-bin)- source tarball with versioned checksum (
ioruba-<version>.tar.gz)
Secrets And Signing
For unsigned test releases, the current workflow works with GITHUB_TOKEN only.
For production-grade signed installers, configure:
APPLE_CERTIFICATEAPPLE_CERTIFICATE_PASSWORDAPPLE_SIGNING_IDENTITYAPPLE_IDAPPLE_PASSWORDAPPLE_TEAM_ID- Windows signing secrets if Authenticode is required
Release Procedure
- Merge validated changes into
main. - Create and push a tag such as
v0.6.1. - Let
release.ymlgenerate the installers and firmware assets. - Verify the uploaded bundles from the GitHub Release page:
- desktop installers (
deb,rpm,AppImage, Windows, macOS) - firmware artifacts
- Arch packaging metadata files (
PKGBUILD,.SRCINFO,PKGBUILD-bin,.SRCINFO-bin, source tarball)
- desktop installers (
- If publishing to AUR, copy those generated files into the respective AUR repositories and push.
Old Automation Removed
These workflows are removed because they were tied to the Haskell distribution path:
- GitHub Pages publishing
- Release Please automation
- repository metadata sync workflow
If Pages is still wanted later, reintroduce it as a docs-only workflow without coupling it to the application release pipeline.