mirror of
https://github.com/jpawlowski/hass.tibber_prices.git
synced 2026-03-29 21:03:40 +00:00
chore(release): enhance version format validation to support prerelease tags
This commit is contained in:
parent
15e09fa210
commit
e851cb0670
3 changed files with 23 additions and 14 deletions
|
|
@ -51,8 +51,8 @@ echo "Subject: $COMMIT_SUBJECT"
|
|||
echo "Date: $COMMIT_DATE"
|
||||
echo ""
|
||||
|
||||
# Check if commit is in any version tag (v*.*.*)
|
||||
TAGS=$(git tag --contains "$COMMIT" | grep -E '^v[0-9]+\.[0-9]+\.[0-9]+' || true)
|
||||
# Check if commit is in any version tag (vX.Y.Z or vX.Y.ZbN)
|
||||
TAGS=$(git tag --contains "$COMMIT" | grep -E '^v[0-9]+\.[0-9]+\.[0-9]+(b[0-9]+)?$' || true)
|
||||
|
||||
if [[ -z $TAGS ]]; then
|
||||
printf '%b✓ NOT RELEASED%b\n' "$GREEN" "$NC"
|
||||
|
|
|
|||
|
|
@ -9,9 +9,10 @@
|
|||
# ./scripts/release/prepare [VERSION|--suggest]
|
||||
#
|
||||
# Examples:
|
||||
# ./scripts/release/prepare --suggest # Show version suggestion
|
||||
# ./scripts/release/prepare 0.3.0 # Bump to version 0.3.0
|
||||
# ./scripts/release/prepare 1.0.0 # Bump to version 1.0.0
|
||||
# ./scripts/release/prepare --suggest # Show version suggestion
|
||||
# ./scripts/release/prepare 0.3.0 # Bump to version 0.3.0
|
||||
# ./scripts/release/prepare 1.0.0 # Bump to version 1.0.0
|
||||
# ./scripts/release/prepare 0.25.0b0 # Bump to beta version 0.25.0b0
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
|
|
@ -42,15 +43,15 @@ fi
|
|||
# Parse version argument
|
||||
VERSION="${1:-}"
|
||||
if [[ -z $VERSION ]]; then
|
||||
die "No version specified.\n\nUsage: $0 VERSION\n\nExamples:\n $0 0.3.0 # Bump to version 0.3.0\n $0 1.0.0 # Bump to version 1.0.0"
|
||||
die "No version specified.\n\nUsage: $0 VERSION\n\nExamples:\n $0 0.3.0 # Bump to version 0.3.0\n $0 1.0.0 # Bump to version 1.0.0\n $0 0.25.0b0 # Bump to beta version 0.25.0b0"
|
||||
fi
|
||||
|
||||
# Strip 'v' prefix if present
|
||||
VERSION="${VERSION#v}"
|
||||
|
||||
# Validate version format (X.Y.Z)
|
||||
if ! echo "$VERSION" | grep -qE '^[0-9]+\.[0-9]+\.[0-9]+$'; then
|
||||
die "Invalid version format: $VERSION\nExpected format: X.Y.Z (e.g., 0.3.0, 1.0.0)"
|
||||
# Validate version format (X.Y.Z or X.Y.ZbN for prerelease/beta)
|
||||
if ! echo "$VERSION" | grep -qE '^[0-9]+\.[0-9]+\.[0-9]+(b[0-9]+)?$'; then
|
||||
die "Invalid version format: $VERSION\nExpected format: X.Y.Z or X.Y.ZbN (e.g., 0.3.0, 1.0.0, 0.25.0b0)"
|
||||
fi
|
||||
|
||||
TAG="v$VERSION"
|
||||
|
|
|
|||
|
|
@ -55,12 +55,20 @@ log_header "Analyzing commits since $FROM_TAG"
|
|||
echo ""
|
||||
|
||||
# Parse current version (from the tag we're analyzing from)
|
||||
CURRENT_VERSION="${FROM_TAG#v}"
|
||||
MAJOR=$(echo "$CURRENT_VERSION" | cut -d. -f1)
|
||||
MINOR=$(echo "$CURRENT_VERSION" | cut -d. -f2)
|
||||
PATCH=$(echo "$CURRENT_VERSION" | cut -d. -f3)
|
||||
parse_version() {
|
||||
local version="$1"
|
||||
|
||||
printf "Current released version: %bv%s.%s.%s%b\n" "$BOLD" "$MAJOR" "$MINOR" "$PATCH" "$NC"
|
||||
if [[ $version =~ ^([0-9]+)\.([0-9]+)\.([0-9]+)(b[0-9]+)?$ ]]; then
|
||||
echo "${BASH_REMATCH[1]} ${BASH_REMATCH[2]} ${BASH_REMATCH[3]} ${BASH_REMATCH[4]}"
|
||||
else
|
||||
die "Unsupported version format: $version\nExpected formats: X.Y.Z or X.Y.ZbN (e.g., 0.3.0, 1.0.0, 0.25.0b0)"
|
||||
fi
|
||||
}
|
||||
|
||||
CURRENT_VERSION="${FROM_TAG#v}"
|
||||
read -r MAJOR MINOR PATCH PRERELEASE <<< "$(parse_version "$CURRENT_VERSION")"
|
||||
|
||||
printf "Current released version: %bv%s.%s.%s%s%b\n" "$BOLD" "$MAJOR" "$MINOR" "$PATCH" "$PRERELEASE" "$NC"
|
||||
if [[ $MANIFEST_VERSION != "$CURRENT_VERSION" ]]; then
|
||||
log_warning "Manifest.json version: $MANIFEST_VERSION (not yet tagged)"
|
||||
fi
|
||||
|
|
|
|||
Loading…
Reference in a new issue