fix(android): share signing identity across all release channels

This commit is contained in:
Tomás Romero committed 2026-10-20 21:18:42 +02:00
1 parent d9992b8dfa
commit eaa75d7e44
19 files changed
+843 -210

No files matched your search

+33
View File
@@ -0,0 +1,33 @@
#!/usr/bin/env python3
"""Derive one Android version sequence for every release channel and workflow."""
import argparse
import re
def version_code(version: str) -> int:
match = re.fullmatch(
r"(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)"
r"(?:-(alpha|beta|rc)\.([1-9][0-9]*))?",
version,
)
if not match:
raise ValueError("Android versions must be X.Y.Z or X.Y.Z-{alpha,beta,rc}.N")
major, minor, patch = map(int, match.group(1, 2, 3))
stage, number = match.group(4, 5)
if major > 20 or minor > 99 or patch > 99 or (number and int(number) > 999):
raise ValueError("Android versions support major 0–20, minor/patch 0–99, and prerelease 1–999")
# Reserve 10,000 codes for each patch. This stays below Play's 2.1B limit.
# alpha.999 < beta.1 < rc.1 < stable < next patch's alpha.1.
suffix = {"alpha": 0, "beta": 1000, "rc": 2000}.get(stage, 9999)
return major * 100_000_000 + minor * 1_000_000 + patch * 10_000 + suffix + int(number or 0)
if __name__ == "__main__":
parser = argparse.ArgumentParser(description=__doc__)
parser.add_argument("version")
args = parser.parse_args()
try:
print(version_code(args.version))
except ValueError as error:
raise SystemExit(str(error)) from error