ci(release): conventional-commit auto-release engine for the APK #12
Reference in New Issue
Block a user
No description provided.
Delete Branch "ci/android-release-engine"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Follow-up to #11. The M6 merge (
de79bf) landed the tag-drivenrelease.yml; this replaces it withlink/'s language-agnostic release engine, adapted for Android (the commit was pushed to the #11 branch too late to be part of that merge, so it needs its own PR off currentmain).What it does
On every push to
mainit:v*tag —feat!/BREAKING → major,feat→ minor,fix/perf→ patch; nothing releasable → no release; first-ever run (no tag) ships the committedbuild.gradle.ktsversion as-is.versionNameinbuild.gradle.kts;versionCodeis derived from it (major*10000+minor*100+patch, monotonic).[skip ci], tagsvX.Y.Z, and creates the Gitea release with notes + APK +SHA256SUMS.Mirrors
link/down to theREGISTRY_USER/REGISTRY_TOKEN(write:repository) usage for pushing the bump + creating the release;mainmust allow that account to push (the bump lands onmain, guarded by[skip ci]+ the head-commit check against a loop). Same self-hosted-runner handling aspr-checks.yml(apt JDK 17,sdkmanager, in-stepchmod +x gradlew).Notes
versionCodederive, the twobuild.gradle.ktsseds) was validated against the real file — it edits exactly the two version-default lines.ANDROID_KEYSTORE_BASE64,ANDROID_KEYSTORE_PASSWORD,ANDROID_KEY_ALIAS,ANDROID_KEY_PASSWORD); this adds theREGISTRY_USER/REGISTRY_TOKENrequirement + themain-push allowance.mainauto-cutsv0.1.0. If the secrets/push-permission aren't set, that run fails at keystore-decode but creates no tag or release.AI-assisted (Claude Code); commit carries
Co-Authored-By: Claude <noreply@anthropic.com>.