dev: bump to 0.1.76.0-dev – aeltere Versionen im Update-Dialog, Release-Branch-Zuordnung, README ueberarbeitet
This commit is contained in:
@@ -7,19 +7,17 @@ branch=$(git symbolic-ref --short HEAD 2>/dev/null)
|
||||
root=$(git rev-parse --show-toplevel)
|
||||
cd "$root"
|
||||
|
||||
# Aktuelle Version aus addon.xml (bereits vom pre-commit Hook hochgezählt)
|
||||
version=$(grep -oP 'version="\K[0-9]+\.[0-9]+\.[0-9]+[^"]*' addon/addon.xml | head -1)
|
||||
# Aktuelle Version aus addon.xml (bereits vom pre-commit Hook hochgezaehlt)
|
||||
version=$(grep -oP 'version="\K[0-9]+\.[0-9]+\.[0-9]+(\.[0-9]+)?[^"]*' addon/addon.xml | head -1)
|
||||
|
||||
# Commit-Message: alte Versionsnummern durch aktuelle ersetzen
|
||||
# z.B. "dev: bump to 0.1.72-dev – ..." → "dev: bump to 0.1.73-dev – ..."
|
||||
msg=$(cat "$1")
|
||||
updated_msg=$(echo "$msg" | sed -E "s/bump to [0-9]+\.[0-9]+\.[0-9]+[^ ]*/bump to ${version}/g")
|
||||
updated_msg=$(echo "$msg" | sed -E "s/bump to [0-9]+\.[0-9]+\.[0-9]+(\.[0-9]+)?[^ ]*/bump to ${version}/g")
|
||||
echo "$updated_msg" > "$1"
|
||||
|
||||
today=$(date +%Y-%m-%d)
|
||||
|
||||
# Changelog-Eintrag aufbauen
|
||||
# Jede nicht-leere Zeile der Commit-Message wird ein "- ..." Eintrag
|
||||
{
|
||||
echo "## ${version} - ${today}"
|
||||
echo ""
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
#!/bin/bash
|
||||
# pre-commit: Patch-Version in addon.xml automatisch hochzählen (nur dev-Branch)
|
||||
# Unterstuetzt 3-teilig (x.x.xx) und 4-teilig (x.x.xx.x)
|
||||
# 4-teilig: zaehlt den 4. Teil in 5er-Schritten hoch (z.B. 0.1.75.5 → 0.1.76.0)
|
||||
|
||||
branch=$(git symbolic-ref --short HEAD 2>/dev/null)
|
||||
[[ "$branch" != "dev" ]] && exit 0
|
||||
@@ -7,18 +9,43 @@ branch=$(git symbolic-ref --short HEAD 2>/dev/null)
|
||||
root=$(git rev-parse --show-toplevel)
|
||||
cd "$root"
|
||||
|
||||
# Version aus addon.xml lesen
|
||||
current=$(grep -oP 'version="\K[0-9]+\.[0-9]+\.[0-9]+[^"]*' addon/addon.xml | head -1)
|
||||
# Version aus addon.xml lesen (3- oder 4-teilig mit optionalem Suffix)
|
||||
current=$(grep -oP 'version="\K[0-9]+\.[0-9]+\.[0-9]+(\.[0-9]+)?[^"]*' addon/addon.xml | head -1)
|
||||
if [[ -z "$current" ]]; then
|
||||
echo "[hook] Fehler: Version nicht gefunden in addon/addon.xml" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Patch-Nummer extrahieren und hochzählen
|
||||
IFS='.' read -r major minor patch_full <<< "$current"
|
||||
patch=$(echo "$patch_full" | grep -oP '^\d+')
|
||||
suffix=$(echo "$patch_full" | grep -oP '[^0-9].*' || true)
|
||||
new_version="${major}.${minor}.$((patch + 1))${suffix}"
|
||||
# Suffix extrahieren (z.B. -dev)
|
||||
suffix=$(echo "$current" | grep -oP '[-][a-zA-Z].*' || true)
|
||||
version_only=$(echo "$current" | sed "s/${suffix}$//")
|
||||
|
||||
# Parts zaehlen
|
||||
IFS='.' read -ra parts <<< "$version_only"
|
||||
num_parts=${#parts[@]}
|
||||
|
||||
if [[ $num_parts -eq 4 ]]; then
|
||||
# 4-teilig: 4. Teil um 5 erhoehen, bei >= 10 den 3. Teil erhoehen
|
||||
major=${parts[0]}
|
||||
minor=${parts[1]}
|
||||
patch=${parts[2]}
|
||||
sub=${parts[3]}
|
||||
new_sub=$((sub + 5))
|
||||
if [[ $new_sub -ge 10 ]]; then
|
||||
new_sub=$((new_sub - 10))
|
||||
patch=$((patch + 1))
|
||||
fi
|
||||
new_version="${major}.${minor}.${patch}.${new_sub}${suffix}"
|
||||
elif [[ $num_parts -eq 3 ]]; then
|
||||
# 3-teilig: Patch hochzaehlen
|
||||
major=${parts[0]}
|
||||
minor=${parts[1]}
|
||||
patch=${parts[2]}
|
||||
new_version="${major}.${minor}.$((patch + 1))${suffix}"
|
||||
else
|
||||
echo "[hook] Fehler: Unerwartetes Versionsformat: $current" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# addon.xml aktualisieren
|
||||
sed -i "s/version=\"${current}\"/version=\"${new_version}\"/" addon/addon.xml
|
||||
|
||||
@@ -128,14 +128,27 @@ print(json.load(open(sys.argv[1], encoding="utf-8"))["id"])
|
||||
PY
|
||||
)"
|
||||
elif [[ "${http_code}" == "404" ]]; then
|
||||
payload="$(python3 - "${TAG}" "${TITLE}" "${NOTES}" <<'PY'
|
||||
# Branch und prerelease aus Version ableiten
|
||||
read -r TARGET_BRANCH IS_PRERELEASE < <(python3 - "${ADDON_VERSION}" <<'PY'
|
||||
import sys
|
||||
v = sys.argv[1]
|
||||
if "-dev" in v:
|
||||
print("dev", "true")
|
||||
elif "-nightly" in v:
|
||||
print("nightly", "true")
|
||||
else:
|
||||
print("main", "false")
|
||||
PY
|
||||
)
|
||||
payload="$(python3 - "${TAG}" "${TITLE}" "${NOTES}" "${TARGET_BRANCH}" "${IS_PRERELEASE}" <<'PY'
|
||||
import json,sys
|
||||
print(json.dumps({
|
||||
"tag_name": sys.argv[1],
|
||||
"name": sys.argv[2],
|
||||
"body": sys.argv[3],
|
||||
"target_commitish": sys.argv[4],
|
||||
"draft": False,
|
||||
"prerelease": False
|
||||
"prerelease": sys.argv[5] == "true"
|
||||
}))
|
||||
PY
|
||||
)"
|
||||
|
||||
Reference in New Issue
Block a user