Some checks failed
Build & Deploy / 🔍 Prepare (push) Successful in 8s
Build & Deploy / 🏗️ Build (push) Has been cancelled
Build & Deploy / 🚀 Deploy (push) Has been cancelled
Build & Deploy / 🧪 Smoke Test (push) Has been cancelled
Build & Deploy / 🔔 Notify (push) Has been cancelled
Build & Deploy / 🧪 QA (push) Has been cancelled
33 lines
925 B
Bash
Executable File
33 lines
925 B
Bash
Executable File
#!/bin/sh
|
|
|
|
# Husky pre-push hook to validate tags
|
|
# Strictly enforces that all pushed tags start with 'v' (e.g., v1.0.0)
|
|
|
|
z40=0000000000000000000000000000000000000000
|
|
|
|
while read local_ref local_sha remote_ref remote_sha
|
|
do
|
|
# Check if we are pushing a tag
|
|
case "$local_ref" in
|
|
refs/tags/*)
|
|
tag_name="${local_ref#refs/tags/}"
|
|
if ! echo "$tag_name" | grep -q "^v[0-9]"; then
|
|
echo ""
|
|
echo "❌ ERROR: Invalid tag name '$tag_name'"
|
|
echo "--------------------------------------------------"
|
|
echo "Consistency check failed: All tags MUST start with 'v'."
|
|
echo "Example: v1.0.10"
|
|
echo ""
|
|
echo "Please delete the invalid tag and create a new one:"
|
|
echo " git tag -d $tag_name"
|
|
echo " git tag v$tag_name"
|
|
echo "--------------------------------------------------"
|
|
echo ""
|
|
exit 1
|
|
fi
|
|
;;
|
|
esac
|
|
done
|
|
|
|
exit 0
|