build: pre-psuh
This commit is contained in:
@@ -1,12 +1,52 @@
|
||||
#!/usr/bin/env sh
|
||||
. "$(dirname -- "$0")/_/husky.sh"
|
||||
|
||||
# 获取最新的 tag
|
||||
TAG=$(git describe --tags --abbrev=0 2>/dev/null)
|
||||
# 读取 stdin 中的所有内容
|
||||
while read local_ref local_sha remote_ref remote_sha; do
|
||||
# 检查是否是 tag 推送
|
||||
case "$remote_ref" in
|
||||
refs/tags/*)
|
||||
# 提取 tag 名称
|
||||
TAG="${remote_ref#refs/tags/}"
|
||||
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "🏷️ 检查最新的 tag: $TAG"
|
||||
node .husky/scripts/verifyTagVersion.js $TAG
|
||||
else
|
||||
echo "⚠️ 没有找到任何 tag,跳过版本校验"
|
||||
# 只校验以 "v" 开头的 tag
|
||||
if [[ $TAG == v* ]]; then
|
||||
echo "🏷️ 检查推送的 tag: $TAG"
|
||||
node .husky/scripts/verifyTagVersion.js "$TAG"
|
||||
else
|
||||
echo "ℹ️ 非版本 tag ($TAG),跳过校验"
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
# 对于普通分支推送,检查最新 tag
|
||||
LATEST_TAG=$(git describe --tags --abbrev=0 2>/dev/null)
|
||||
if [ $? -eq 0 ]; then
|
||||
# 只校验以 "v" 开头的 tag
|
||||
if [[ $LATEST_TAG == v* ]]; then
|
||||
echo "🏷️ 检查最新的 tag: $LATEST_TAG"
|
||||
node .husky/scripts/verifyTagVersion.js "$LATEST_TAG"
|
||||
else
|
||||
echo "ℹ️ 最新 tag ($LATEST_TAG) 不是版本 tag,跳过校验"
|
||||
fi
|
||||
else
|
||||
echo "⚠️ 没有找到任何 tag,跳过版本校验"
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
# 如果 stdin 为空(没有推送任何引用),也检查最新 tag
|
||||
if [ -t 0 ]; then
|
||||
LATEST_TAG=$(git describe --tags --abbrev=0 2>/dev/null)
|
||||
if [ $? -eq 0 ]; then
|
||||
# 只校验以 "v" 开头的 tag
|
||||
if [[ $LATEST_TAG == v* ]]; then
|
||||
echo "🏷️ 检查最新的 tag: $LATEST_TAG"
|
||||
node .husky/scripts/verifyTagVersion.js "$LATEST_TAG"
|
||||
else
|
||||
echo "ℹ️ 最新 tag ($LATEST_TAG) 不是版本 tag,跳过校验"
|
||||
fi
|
||||
else
|
||||
echo "⚠️ 没有找到任何 tag,跳过版本校验"
|
||||
fi
|
||||
fi
|
||||
Reference in New Issue
Block a user