Commit Graph

12 Commits

Author SHA1 Message Date
bvandeusen 399da397da fix: add release keystore signing to CI to fix self-update installs
Without a consistent signing key, each CI build was signed with the
ephemeral debug keystore from the Flutter container — causing Android
to reject updates with INSTALL_FAILED_UPDATE_INCOMPATIBLE.

Secrets stored in repo: RELEASE_KEYSTORE_BASE64, RELEASE_KEYSTORE_PASSWORD,
RELEASE_KEY_ALIAS. CI decodes the keystore and writes key.properties
before building so every release APK is signed identically.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-26 23:41:56 -04:00
bvandeusen baba5c3462 feat: inject version from release tag at build time
pubspec.yaml now holds a placeholder (0.0.0+0) that is never updated.
CI strips the v* tag to derive --build-name (e.g. 26.03.12) and
--build-number (e.g. 260312) and passes them to flutter build apk.
2026-03-12 07:52:26 -04:00
bvandeusen c8f3861eb5 ci: only trigger on v* release tags, never on branch pushes 2026-03-12 00:24:59 -04:00
bvandeusen 3a336ddf88 ci: replace JS actions with shell steps — Flutter container has no Node
actions/checkout and actions/upload-artifact are JavaScript actions.
When container: is set, act runs them inside the container (not on the
host runner), but ghcr.io/cirruslabs/flutter:stable has no Node.js.

Replace both with equivalent shell commands:
- checkout: git clone + git checkout SHA
- artifact upload: curl to Forgejo API (best-effort, non-blocking)
The release APK attach step was already a pure shell step and is unchanged.
2026-03-12 00:21:47 -04:00
bvandeusen fa1b65484c ci: attach APK to existing release when created via Forgejo UI 2026-03-11 23:29:24 -04:00
bvandeusen 4b6fca39a8 ci: merge build into ci workflow with needs gate; update README 2026-03-11 23:24:48 -04:00
bvandeusen 8a31034621 ci: switch runner label to py3.12-node22 to match act runner config 2026-03-11 23:19:36 -04:00
bvandeusen ef4872e24a Bump actions/checkout v4 → v6
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-09 21:46:53 -04:00
bvandeusen 0999774f34 Add dev branch support to build workflow
dev push  → artifact named fabledapp-dev-<sha>
main push → artifact named fabledapp-<sha>
tag push  → artifact + Forgejo Release

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-08 21:17:53 -04:00
bvandeusen 46425a4b27 Add Forgejo Release creation on version tag push
Tag pushes (v*) now build the APK and create a Forgejo Release with
the APK attached as a downloadable asset, in addition to uploading the
workflow artifact. Requires RELEASE_TOKEN secret (write:repository scope).
To release: git tag v26.03.09 && git push origin v26.03.09

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-08 21:04:50 -04:00
bvandeusen 86244cdfbc Add path filters to CI and build workflows
CI skips on changes to platform dirs (ios, linux, macos, web, windows),
docs, and README. Build skips on test-only changes since tests don't
affect the release APK.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-08 20:39:12 -04:00
bvandeusen 6abc4257be Add Forgejo Actions CI and APK build workflows
ci.yml: flutter analyze + flutter test on every push, runs in
  ghcr.io/cirruslabs/flutter:stable container (includes Flutter, Dart,
  Java, Android SDK)
build.yml: release APK build on main push, uploaded as workflow artifact
  (downloadable from Forgejo Actions UI, retained 30 days)

No secrets required. Uses existing swarm-runner.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-08 20:29:20 -04:00