2
0

release_tag.sh 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. #!/bin/bash
  2. # 版本标签创建与推送脚本
  3. # 使用方法: ./release_tag.sh v0.0.3
  4. # 检查是否提供了版本号参数
  5. if [ -z "$1" ]; then
  6. echo "错误: 请提供版本号作为参数"
  7. echo "用法: $0 <版本号>"
  8. echo "示例: $0 v1.2.3"
  9. exit 1
  10. fi
  11. # 获取版本号参数
  12. VERSION=$1
  13. # 检查是否在 Git 仓库中
  14. if ! git rev-parse --is-inside-work-tree > /dev/null 2>&1; then
  15. echo "错误: 当前目录不是 Git 仓库"
  16. exit 1
  17. fi
  18. # 检查是否有未提交的更改
  19. if [ -n "$(git status --porcelain)" ]; then
  20. echo "警告: 有未提交的更改,建议先提交"
  21. read -p "是否继续? (y/n): " response
  22. if [[ ! $response =~ ^[Yy]$ ]]; then
  23. exit 1
  24. fi
  25. fi
  26. # 检查远程仓库是否存在
  27. if ! git remote | grep -q "gitea"; then
  28. echo "错误: 未找到名为 'gitea' 的远程仓库"
  29. exit 1
  30. fi
  31. # 创建并推送标签
  32. echo "正在创建标签: $VERSION"
  33. git tag "$VERSION"
  34. if [ $? -ne 0 ]; then
  35. echo "错误: 创建标签失败"
  36. exit 1
  37. fi
  38. echo "正在推送标签到 gitea 远程仓库..."
  39. git push gitea "$VERSION"
  40. if [ $? -ne 0 ]; then
  41. echo "错误: 推送标签失败"
  42. exit 1
  43. fi
  44. echo "成功! 标签 $VERSION 已创建并推送到 gitea 远程仓库"