增加发版本的功能
This commit is contained in:
66
scripts/release.sh
Executable file
66
scripts/release.sh
Executable file
@@ -0,0 +1,66 @@
|
||||
#!/bin/bash
|
||||
|
||||
# 版本发布脚本
|
||||
# 使用方法: ./scripts/release.sh v1.0.0 "Release message"
|
||||
|
||||
set -e
|
||||
|
||||
VERSION=$1
|
||||
MESSAGE=$2
|
||||
|
||||
if [ -z "$VERSION" ]; then
|
||||
echo "错误: 请提供版本号"
|
||||
echo "使用方法: ./scripts/release.sh v1.0.0 \"Release message\""
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -z "$MESSAGE" ]; then
|
||||
MESSAGE="Release $VERSION"
|
||||
fi
|
||||
|
||||
# 验证版本号格式 (v主版本号.次版本号.修订号)
|
||||
if ! [[ $VERSION =~ ^v[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
|
||||
echo "错误: 版本号格式不正确,应为 v主版本号.次版本号.修订号 (例如: v1.0.0)"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "准备发布版本: $VERSION"
|
||||
echo "发布信息: $MESSAGE"
|
||||
echo ""
|
||||
|
||||
# 检查是否有未提交的更改
|
||||
if [ -n "$(git status --porcelain)" ]; then
|
||||
echo "警告: 检测到未提交的更改"
|
||||
read -p "是否继续? (y/n) " -n 1 -r
|
||||
echo
|
||||
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
# 检查标签是否已存在
|
||||
if git rev-parse "$VERSION" >/dev/null 2>&1; then
|
||||
echo "错误: 版本标签 $VERSION 已存在"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 创建标签
|
||||
echo "创建版本标签..."
|
||||
git tag -a "$VERSION" -m "$MESSAGE"
|
||||
|
||||
# 询问是否推送
|
||||
read -p "是否推送到远程仓库? (y/n) " -n 1 -r
|
||||
echo
|
||||
if [[ $REPLY =~ ^[Yy]$ ]]; then
|
||||
echo "推送标签到远程仓库..."
|
||||
git push origin "$VERSION"
|
||||
echo "版本 $VERSION 已成功发布!"
|
||||
else
|
||||
echo "标签已创建,但未推送。使用以下命令推送:"
|
||||
echo " git push origin $VERSION"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "完成! 调用方现在可以使用以下命令安装此版本:"
|
||||
echo " go get git.toowon.com/jimmy/go-common@$VERSION"
|
||||
|
||||
Reference in New Issue
Block a user