Skip to content

Release: put the APKs on the CDN and update the admin panel - #74

Merged
professorDeveloper merged 3 commits into
masterfrom
ci/release-cdn-admin
Nov 13, 2026
Merged

professorDeveloper merged 3 commits into
masterfrom
ci/release-cdn-admin

Conversation

@professorDeveloper

@professorDeveloper professorDeveloper commented Nov 12, 2026 •

Copy link
Copy Markdown
Owner

New admin job in release.yml, right after the Android build (runs in parallel with the desktop builds):

  1. Uploads arm64 and armv7 APKs to R2 via POST /admin/downloads/upload-url + presigned PUT.
  2. Creates the download-page rows with replacePrevious: true, so the old builds disappear from the page.
  3. Points the in-app updater (/admin/app-versions/android) at the new arm64 APK: version = build number, downloadUrl, releaseNotes (the notes input, or Sozo v<version>). minVersion, forceUpdate and active are kept as set in the admin panel.
  4. Telegram message says whether the CDN and updater were updated.

New dispatch input admin: publish | skip (default publish). release: skip also skips it. Tag pushes publish.

Needs backend professorDeveloper/sozo-backend ci/mobile-release-token merged and deployed, and the SOZO_MOBILE_RELEASE_TOKEN secret in this repo. Without the secret the job only warns.

CI fixes (unrelated to the above, but they broke every build):

  • Flutter pinned to 3.47.9 in ci.yml and release.yml. Stable moved to 3.50.0, which needs Gradle 9.3.1 (project has 8.14) and fails on the liquid_glass shaders.
  • Linux builds run on ubuntu-24.04. ubuntu-latest became 26.04, whose clang fails flutter_secure_storage_linux under -Werror.

A new admin job, after the Android build, uploads the arm64 and armv7 APKs
to R2 through the backend's release routes, replaces the old builds on the
download page, and points the in-app updater at the new arm64 APK.

Only version, downloadUrl and releaseNotes change on the updater row;
minVersion, forceUpdate and active stay as set in the admin panel. The
`admin` input (publish | skip) turns it off, and `release: skip` skips it
too. Without SOZO_MOBILE_RELEASE_TOKEN it warns and does nothing. Telegram
says whether the CDN and updater were updated.
Stable moved to 3.50.0, which needs Gradle 9.3.1 (the project has 8.14) and
fails to compile the liquid_glass shader, so test, build-android and
build-linux all failed on unchanged app code. The release workflow had the
same unpinned setup.
ubuntu-latest became 26.04, whose clang turns a deprecated-literal-operator
warning in flutter_secure_storage_linux's json.hpp into an error under the
plugin's -Werror.
@professorDeveloper
professorDeveloper merged commit 4ce2d5c into master Nov 13, 2026
4 checks passed
@professorDeveloper
professorDeveloper deleted the ci/release-cdn-admin branch November 13, 2026 06:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant