Files
bl/release.sh
2025-06-20 17:13:51 +08:00

53 lines
1.3 KiB
Go
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
set -e
# if ! [[ $TAG =~ ^v[0-9]+\.[0-9]+\.[0-9]+$ ]; then
# echo "Invalid tag: $TAG, must be in the form of vMAJOR.MINOR.PATCH,example: v1.0.0"
# exit 1
# fi
# 检查当前是否为master分支
if [ "$(git rev-parse --abbrev-ref HEAD)" != "master" ]; then
echo "You must be on the master branch to release"
exit 1
fi
# 检查是否有未提交的修改
if ! git diff-index --quiet HEAD --; then
# 如果当前环境为github codespace检测结果有误跳过
if [ -n "$CODESPACES" ]; then
echo "skip uncommitted changes check in codespace"
else
echo "You have uncommitted changes, please commit or stash them"
exit 1
fi
fi
# 检查本地与远程是否有同步问题
if ! git diff-index --quiet --cached HEAD --; then
echo "Your local repository is out of sync with remote, please sync first"
exit 1
fi
## 获取第一个参数为tag
TAG=$1
if [ -z "$TAG" ]; then
echo "Usage: $0 <tag>"
exit 1
fi
# 判断是否是tag
if ! echo "$TAG" | grep -q '^v[0-9]\+\.[0-9]\+\.[0-9]\+$'; then
echo "Invalid tag: $TAG, must be in the form of vMAJOR.MINOR.PATCH,example: v1.0.0"
exit 1
fi
# 推送到master
git push origin master
# 创建tag
git tag $TAG
# 提交tag
git push origin $TAG
# 显示最新的tag
git describe --tags --abbrev=0