Commit Graph
12 Commits
Author SHA1 Message Date
bvandeusenandClaude Sonnet 4.6 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
bvandeusenandClaude Sonnet 4.6 ef4872e24a Bump actions/checkout v4 → v6
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-09 21:46:53 -04:00
bvandeusenandClaude Sonnet 4.6 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
bvandeusenandClaude Sonnet 4.6 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
bvandeusenandClaude Sonnet 4.6 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
bvandeusenandClaude Sonnet 4.6 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