3cf829752b
flutter / analyze-test-build (push) Failing after 2s
test-go / test (push) Successful in 33s
android / Build + lint + test (push) Failing after 41s
test-web / test (push) Successful in 41s
android / Build signed release APK (push) Has been skipped
test-go / integration (push) Successful in 11m16s
- rename .forgejo/workflows/ to .gitea/workflows/ (git mv preserves history); Gitea Actions reads either path, but the directory now matches the active platform - collapse ANDROID_STORE_PASSWORD + ANDROID_KEY_PASSWORD into a single ANDROID_KEYSTORE_PASSWORD secret (PKCS12 keystores require the two passwords to be identical, so the duplication carried no information); build.gradle.kts still reads two env vars to stay format-agnostic, both now sourced from the same secret in CI - ignore android/*.keystore, android/*.keystore.*, android/*.jks, android/keystore.properties so the regenerated signing material never reaches a remote on accident - update prose references from Forgejo to Gitea in CLAUDE.md and the docs; the historical "migrated from Forgejo" note in CLAUDE.md is kept intentionally; forgejo/upload-artifact@v3 action refs are left untouched (canonical artifact action, resolves cleanly under Gitea Actions) Operator side: ANDROID_KEY_ALIAS, ANDROID_KEYSTORE_PASSWORD, and ANDROID_KEYSTORE_B64 secrets registered in Gitea before this lands.
1.2 KiB
1.2 KiB
Bundled client assets
Holds the Android APK (minstrel.apk + minstrel.apk.version) that the
server serves via /api/client/version and /api/client/apk for the
in-app update flow (#397).
Production
CI populates this directory on tag releases:
flutter.ymlbuildsapp-release.apkand attaches it to the Gitea release asminstrel-<TAG>.apk.release.ymlwaits for that asset to appear, downloads it into this directory asminstrel.apk, writes the tag string tominstrel.apk.version, anddocker buildx buildincludes both viaCOPY client/ /app/client/.
Development
Empty directory works fine — the endpoints return 404 and the Flutter update banner stays hidden ("no update channel" graceful degradation).
To smoke-test the update flow locally, drop a real APK + a version file into this directory:
cp /path/to/app-release.apk client/minstrel.apk
echo "v0.2.0" > client/minstrel.apk.version
Why a directory and not embed.FS?
The APK is 30-60 MB. Embedding bloats the Go binary and slows
go build for everyone, even when the APK isn't being changed.
File-on-disk also lets operators override at runtime via volume
mount on /app/client/ if they want to ship their own build.