56 lines
1.2 KiB
Bash
56 lines
1.2 KiB
Bash
#!/bin/bash
|
|
|
|
# 版本标签创建与推送脚本
|
|
# 使用方法: ./release_tag.sh v0.0.3
|
|
|
|
# 检查是否提供了版本号参数
|
|
if [ -z "$1" ]; then
|
|
echo "错误: 请提供版本号作为参数"
|
|
echo "用法: $0 <版本号>"
|
|
echo "示例: $0 v1.2.3"
|
|
exit 1
|
|
fi
|
|
|
|
# 获取版本号参数
|
|
VERSION=$1
|
|
|
|
# 检查是否在 Git 仓库中
|
|
if ! git rev-parse --is-inside-work-tree > /dev/null 2>&1; then
|
|
echo "错误: 当前目录不是 Git 仓库"
|
|
exit 1
|
|
fi
|
|
|
|
# 检查是否有未提交的更改
|
|
if [ -n "$(git status --porcelain)" ]; then
|
|
echo "警告: 有未提交的更改,建议先提交"
|
|
read -p "是否继续? (y/n): " response
|
|
if [[ ! $response =~ ^[Yy]$ ]]; then
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
# 检查远程仓库是否存在
|
|
if ! git remote | grep -q "gitea"; then
|
|
echo "错误: 未找到名为 'gitea' 的远程仓库"
|
|
exit 1
|
|
fi
|
|
|
|
# 创建并推送标签
|
|
echo "正在创建标签: $VERSION"
|
|
git tag "$VERSION"
|
|
|
|
if [ $? -ne 0 ]; then
|
|
echo "错误: 创建标签失败"
|
|
exit 1
|
|
fi
|
|
|
|
echo "正在推送标签到 gitea 远程仓库..."
|
|
git push gitea "$VERSION"
|
|
|
|
if [ $? -ne 0 ]; then
|
|
echo "错误: 推送标签失败"
|
|
exit 1
|
|
fi
|
|
|
|
echo "成功! 标签 $VERSION 已创建并推送到 gitea 远程仓库"
|