fix: overwrite release instead of prepending version history [skip ci]

This commit is contained in:
Jonathan Miller
2026-05-02 15:55:52 -05:00
parent 2865d954a2
commit ecc8aaa3b2
+3 -29
View File
@@ -353,47 +353,21 @@ jobs:
**SHA-256:** \`${SHA256}\`"
fi
# Check for existing release — keep last N versions in body
EXISTING_BODY=""
# Delete existing release if present
EXISTING_ID=""
RELEASE_JSON=$(curl -sS -H "Authorization: token ${TOKEN}" \
"${API}/releases/tags/${TAG}" 2>/dev/null)
EXISTING_ID=$(echo "$RELEASE_JSON" | jq -r '.id // empty')
if [ -n "$EXISTING_ID" ]; then
echo "Existing release found: id=${EXISTING_ID}"
EXISTING_BODY=$(echo "$RELEASE_JSON" | jq -r '.body // ""')
# Keep only last (MAX_HISTORY - 1) version entries to make room for new one
TRIMMED_BODY=$(echo "$EXISTING_BODY" | python3 -c "
import sys, re
content = sys.stdin.read()
# Split on version headers (## XX.YY.ZZ)
parts = re.split(r'(?=^## \d)', content, flags=re.MULTILINE)
# Keep only version entries (skip any preamble)
versions = [p for p in parts if re.match(r'^## \d', p)]
# Keep last $((MAX_HISTORY - 1)) entries
kept = versions[:$((MAX_HISTORY - 1))]
print('\n---\n'.join(kept))
" 2>/dev/null || echo "")
# Delete old release and tag so we can recreate
echo "Existing release found: id=${EXISTING_ID} — deleting"
curl -sS -X DELETE -H "Authorization: token ${TOKEN}" \
"${API}/releases/${EXISTING_ID}" 2>/dev/null || true
curl -sS -X DELETE -H "Authorization: token ${TOKEN}" \
"${API}/tags/${TAG}" 2>/dev/null || true
fi
# Compose full body: new entry + previous entries
if [ -n "$TRIMMED_BODY" ]; then
FULL_BODY="${NEW_ENTRY}
---
${TRIMMED_BODY}"
else
FULL_BODY="${NEW_ENTRY}"
fi
FULL_BODY="${NEW_ENTRY}"
echo "=== Create Release ==="
echo "TAG=${TAG} VERSION=${VERSION} BRANCH=${BRANCH} PRE=${IS_PRE} HISTORY=${MAX_HISTORY}"