fix(ci): compute strictly monotonic SemVer versionCode for releases (#1365)
This commit is contained in:
@@ -54,10 +54,13 @@ jobs:
|
|||||||
# Strip leading 'v' for versionName
|
# Strip leading 'v' for versionName
|
||||||
VERSION="${TAG#v}"
|
VERSION="${TAG#v}"
|
||||||
echo "version=$VERSION" >> "$GITHUB_OUTPUT"
|
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%%-*}"
|
BASE_VERSION="${VERSION%%-*}"
|
||||||
CODE=$(echo "$BASE_VERSION" | tr -d '.' | sed 's/^0*//')
|
IFS='.' read -r MAJOR MINOR PATCH _ <<< "$BASE_VERSION"
|
||||||
[ -z "$CODE" ] && CODE=0
|
MAJOR="${MAJOR:-0}"
|
||||||
|
MINOR="${MINOR:-0}"
|
||||||
|
PATCH="${PATCH:-0}"
|
||||||
|
CODE=$(( MAJOR * 10000 + MINOR * 100 + PATCH ))
|
||||||
echo "code=$CODE" >> "$GITHUB_OUTPUT"
|
echo "code=$CODE" >> "$GITHUB_OUTPUT"
|
||||||
if [[ "$VERSION" == *"-"* ]]; then
|
if [[ "$VERSION" == *"-"* ]]; then
|
||||||
PRERELEASE="true"
|
PRERELEASE="true"
|
||||||
|
|||||||
Reference in New Issue
Block a user