Document mirrored release APK policy
Some checks failed
Gitea Smoke / smoke (push) Successful in 0s
Gitea Android Compile Check / build (push) Has been cancelled

This commit is contained in:
Codex 2026-07-07 04:00:00 +00:00
parent f9e465bed5
commit 10e8139a32
3 changed files with 26 additions and 7 deletions

View File

@ -1,4 +1,4 @@
name: Gitea Android APK name: Gitea Android Compile Check
on: [push] on: [push]
@ -6,7 +6,7 @@ jobs:
build: build:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Build APK - name: Compile Android APK
env: env:
CLONE_TOKEN: ${{ secrets.TMUX_GITEA_TOKEN }} CLONE_TOKEN: ${{ secrets.TMUX_GITEA_TOKEN }}
run: | run: |
@ -62,6 +62,8 @@ jobs:
mkdir -p release mkdir -p release
APK_PATH="$(find app/build/outputs/apk -name '*.apk' | sort | tail -n 1)" APK_PATH="$(find app/build/outputs/apk -name '*.apk' | sort | tail -n 1)"
cp "${APK_PATH}" release/tmux-android-gitea.apk cp "${APK_PATH}" release/tmux-android-gitea-compile-check.apk
ls -lh release/tmux-android-gitea.apk ls -lh release/tmux-android-gitea-compile-check.apk
sha256sum release/tmux-android-gitea.apk sha256sum release/tmux-android-gitea-compile-check.apk
echo "Gitea-built APK is a compile check only."
echo "Do not publish it as a release asset; release APKs are GitHub-built and mirrored byte-for-byte to Gitea."

View File

@ -100,6 +100,15 @@ to reach GitHub reliably. GitHub remains an optional public source. This Gitea
instance does not support the GitHub-style `/releases/latest/download/...` URL, instance does not support the GitHub-style `/releases/latest/download/...` URL,
so the app uses the Gitea Release API as the stable Gitea update entrypoint. so the app uses the Gitea Release API as the stable Gitea update entrypoint.
Release APKs must be identical on GitHub and Gitea. The canonical APK is the
GitHub Release asset built by `.github/workflows/android.yml`; publish to Gitea
by mirroring that same `tmux-android.apk` byte-for-byte and uploading a
Gitea-specific `latest.json` whose `apkUrl` points at the Gitea asset but whose
`versionCode`, `versionName`, and `sha256` match the GitHub manifest. Do not use
a separately built Gitea APK as a release asset unless it is proven to have the
same SHA-256 as the GitHub APK. This keeps Android signatures and update
compatibility identical no matter which platform the phone can reach.
Plain branch builds only create Actions artifacts; they are useful for CI Plain branch builds only create Actions artifacts; they are useful for CI
verification, but releases are the stable download/update channel. verification, but releases are the stable download/update channel.

View File

@ -87,8 +87,8 @@ Implemented now:
preview display preview display
- GitHub Actions APK build - GitHub Actions APK build
- release manifest `latest.json` - release manifest `latest.json`
- selected-source update checks; Gitea and GitHub are not probed in the same - Auto/Gitea/GitHub/Selected update checks, with Auto falling back from Gitea
update check to GitHub
- one-download-per-version APK cache, SHA-256 verification, and installer - one-download-per-version APK cache, SHA-256 verification, and installer
handoff handoff
- permission/about surfaces for unknown-app install status, notification status, - permission/about surfaces for unknown-app install status, notification status,
@ -119,6 +119,14 @@ runs are for CI artifacts and should be used to validate grouped changes. Do not
publish a new tag for every small UI copy or layout change; publish when there publish a new tag for every small UI copy or layout change; publish when there
is a useful feature or test batch for phone-side validation. is a useful feature or test batch for phone-side validation.
Release APKs must be identical across the public GitHub and Gitea download
channels. Treat the GitHub Release APK as the canonical build artifact, then
mirror that same APK byte-for-byte to the matching Gitea Release. The Gitea
`latest.json` should point to the Gitea APK URL, but it must keep the same
`versionCode`, `versionName`, and `sha256` as the GitHub manifest. A Gitea-built
APK is only a compile check unless its SHA-256 exactly matches the GitHub
release APK.
## Native Roadmap ## Native Roadmap
To converge with the upstream mobile design, the next implementation should add To converge with the upstream mobile design, the next implementation should add