fix(ci): compute strictly monotonic SemVer versionCode for releases (#1365)

This commit is contained in:
m57 authored and GitHub committed 2026-09-28 21:09:47 +03:00
1 parent d086ae40a4
commit a9844c42f4
1 file changed
+6 -3
+6 -3
View File
@@ -54,10 +54,13 @@ jobs:
# Strip leading 'v' for versionName
VERSION="${TAG#v}"
echo "version=$VERSION" >> "$GITHUB_OUTPUT"
# versionCode: strip pre-release suffixes (e.g. 1.25.0-rc1 -> 1.25.0) and dots
# versionCode: SemVer MAJOR * 10000 + MINOR * 100 + PATCH (e.g. 2.0.0 -> 20000, > 1.31.0's 1310)
BASE_VERSION="${VERSION%%-*}"
CODE=$(echo "$BASE_VERSION" | tr -d '.' | sed 's/^0*//')
[ -z "$CODE" ] && CODE=0
IFS='.' read -r MAJOR MINOR PATCH _ <<< "$BASE_VERSION"
MAJOR="${MAJOR:-0}"
MINOR="${MINOR:-0}"
PATCH="${PATCH:-0}"
CODE=$(( MAJOR * 10000 + MINOR * 100 + PATCH ))
echo "code=$CODE" >> "$GITHUB_OUTPUT"
if [[ "$VERSION" == *"-"* ]]; then
PRERELEASE="true"