Release: web UX overhaul + Android native port + server polish #59

Merged
bvandeusen merged 298 commits from dev into main 2026-06-01 16:11:21 -04:00
2 changed files with 17 additions and 13 deletions
Showing only changes of commit 906eb80ce5 - Show all commits
+10 -10
View File
@@ -1,9 +1,10 @@
name: android name: android
# Native Android (Kotlin/Compose/Media3) — M8 rewrite of the Flutter client. # Native Android (Kotlin/Compose/Media3) — M8 rewrite, now the only client.
# Lives side-by-side with flutter_client/ until cutover; both APKs ship from # At cutover (M8 phase 14.4) the asset name flipped from
# their respective release artifacts (minstrel-<tag>.apk = Flutter, # minstrel-android-<tag>.apk to minstrel-<tag>.apk so the server's bundled
# minstrel-android-<tag>.apk = native) during the transition. # in-app-update channel (release.yml polls this name) resolves to the
# native APK with no further changes.
on: on:
push: push:
@@ -129,11 +130,10 @@ jobs:
run: ./gradlew assembleRelease run: ./gradlew assembleRelease
- name: Attach APK to release - name: Attach APK to release
# During the side-by-side period the asset name is # M8 phase 14.4 cutover: the asset is now minstrel-<tag>.apk so
# minstrel-android-<tag>.apk so it doesn't collide with the # release.yml's bundled in-app-update fetcher (which polls this
# Flutter app's minstrel-<tag>.apk. At cutover, flip this name # exact filename) resolves to the native APK with no further
# to minstrel-<tag>.apk and deactivate the flutter.yml release- # workflow plumbing.
# attach step (M8 phase 14.4).
shell: bash shell: bash
env: env:
CI_TOKEN: ${{ secrets.CI_TOKEN }} CI_TOKEN: ${{ secrets.CI_TOKEN }}
@@ -150,4 +150,4 @@ jobs:
curl -fsSL \ curl -fsSL \
-H "Authorization: token ${CI_TOKEN}" \ -H "Authorization: token ${CI_TOKEN}" \
-F "attachment=@app/build/outputs/apk/release/app-release.apk" \ -F "attachment=@app/build/outputs/apk/release/app-release.apk" \
"https://git.fabledsword.com/api/v1/repos/${REPO}/releases/${RELEASE_ID}/assets?name=minstrel-android-${TAG}.apk" "https://git.fabledsword.com/api/v1/repos/${REPO}/releases/${RELEASE_ID}/assets?name=minstrel-${TAG}.apk"
+7 -3
View File
@@ -2,7 +2,7 @@ name: release
# Builds and pushes the minstrel container image to the Gitea registry. # Builds and pushes the minstrel container image to the Gitea registry.
# #
# push to main → :main # push to main → :main and :latest
# push tag vX.Y.Z → :vX.Y.Z and :latest # push tag vX.Y.Z → :vX.Y.Z and :latest
# workflow_dispatch → manual trigger (same rules based on the ref) # workflow_dispatch → manual trigger (same rules based on the ref)
@@ -55,9 +55,13 @@ jobs:
echo "version=${VERSION}" >> "$GITHUB_OUTPUT" echo "version=${VERSION}" >> "$GITHUB_OUTPUT"
echo "::notice::Release build: ${VERSION} + latest" echo "::notice::Release build: ${VERSION} + latest"
else else
echo "args=-t ${IMAGE}:main" >> "$GITHUB_OUTPUT" # Main is the protected, post-PR-merge branch. Treat it as the
# rolling stable channel — every main push moves :latest.
# Pinned consumers can target :vX.Y.Z; everyone else gets the
# newest main.
echo "args=-t ${IMAGE}:main -t ${IMAGE}:latest" >> "$GITHUB_OUTPUT"
echo "version=main" >> "$GITHUB_OUTPUT" echo "version=main" >> "$GITHUB_OUTPUT"
echo "::notice::Main-branch build: :main" echo "::notice::Main-branch build: :main + :latest"
fi fi
- name: Registry login - name: Registry login