Commit Graph

3 Commits

Author SHA1 Message Date
lucaronin
5268168abb ci: github pages with release history
Use peaceiris/actions-gh-pages@v4 to deploy a release history site.
The page fetches releases.json (also deployed) and renders each release
with date, notes, and download links for .dmg files.

This handles the gh-pages branch creation automatically on first run.
The page is available at https://refactoringhq.github.io/laputa-app/

Product decision: used fetch() to load releases.json at runtime instead
of inlining it, which is cleaner and avoids shell escaping issues with
release note content. The releases.json is deployed alongside index.html.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 10:42:15 +01:00
lucaronin
cae6fced35 ci: auto-release workflow on merge to main
Rewrite .github/workflows/release.yml to trigger on every push to main
instead of manual tag pushes. The workflow now:

- Computes version as 0.YYYYMMDD.GITHUB_RUN_NUMBER
- Builds aarch64-apple-darwin and x86_64-apple-darwin in parallel
- Merges them into a universal binary using lipo
- Creates a universal .dmg and signed updater tarball
- Generates latest.json with per-arch and universal platform entries
- Publishes a GitHub Release with auto-generated release notes
- Updates a GitHub Pages release history site (gh-pages branch)

Product decisions:
- Universal binary approach: copy arm64 .app as base, lipo the main
  executable, keep everything else from arm64 (shared frameworks are
  architecture-independent). This is the standard Tauri pattern.
- Per-arch updater tarballs are also uploaded so the Tauri updater can
  download the correct arch-specific build (smaller download).
- Release notes are auto-generated from git log since last tag.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 10:41:20 +01:00
lucaronin
d39b817625 ci: add release workflow for macOS OTA updates via GitHub Releases
Triggered on v* tags. Builds universal macOS binaries (aarch64 + x86_64)
using tauri-apps/tauri-action@v0, signs updater artifacts with
TAURI_SIGNING_PRIVATE_KEY secret, and publishes to GitHub Releases.

The updater endpoint in tauri.conf.json points to the latest.json artifact
from these releases, completing the OTA update pipeline.

No Apple code signing for now — macOS Gatekeeper will show unsigned-app
warnings until we add notarization in a future task.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-22 12:10:33 +01:00