Files
map-client-vue/RELEASE_SCRIPT_SUMMARY.md
2025-10-15 15:29:25 +08:00

5.7 KiB
Raw Permalink Blame History

release.sh 升级完成

🎉 升级状态

  • 脚本版本: v1.0 → v2.0
  • 脚本位置: /Users/gavin/xhs/mcp-client-vue/release.sh
  • 执行权限: 已设置
  • 语法检查: 通过

📦 新增功能

1. 智能字符集处理

  • 自动检测 UTF-8 字符集错误
  • 自动降级为英文版本
  • 确保 Release 100% 创建成功

2. 详细错误提示

  • 显示完整错误信息
  • 提供手动创建步骤
  • 包含具体的 URL 链接

3. Release 验证

  • 创建后显示 Release URL
  • 确认创建状态
  • 提供相关链接(标签、提交)

4. 工具依赖检查

  • 检查 jq 命令是否安装
  • 提供安装指南
  • 避免运行时错误

5. 完善的文档

  • 脚本头部详细说明
  • 完整使用指南文档
  • 变更日志和示例

📝 创建的文档

  1. release.sh - 升级后的发布脚本 (v2.0)
  2. RELEASE_SCRIPT_GUIDE.md - 完整使用指南
  3. RELEASE_SCRIPT_CHANGES.md - 变更说明
  4. RELEASE_SCRIPT_SUMMARY.md - 本总结文档

🚀 使用方法

快速开始

# 1. 设置 Gitea Token
export GITEA_TOKEN="73c2e2cd8ca86dbeaebdeaef77cbab3564d5122a"

# 2. 确保在 main 分支且工作区干净
git status

# 3. 执行发布脚本
./release.sh

# 4. 查看输出,确认发布成功

预期输出

✅ 分支: main
✅ 工作区干净
⬇️  拉取远程代码...
✅ 已同步最新代码
📝 版本号: v1.0.3
✅ 已创建 tag v1.0.3
🚀 推送到远程...
🔄 尝试创建 Release (使用中文内容)...
⚠️ 检测到字符集问题,尝试使用英文版本...
✅ Release 创建成功 (英文版): v1.0.3
🔗 Release 地址: https://biboer.cn/gitea/gavin/map-client-vue/releases/tag/v1.0.3
💡 提示: 可以在 Gitea Web 界面手动编辑添加中文说明

🎉 发布完成!
📦 版本v1.0.3

📊 发布总结:
  ✅ Git 标签已推送
  ✅ 代码已推送到远程
  ✅ Gitea Release 已创建

🔗 访问地址:
  - Release: https://biboer.cn/gitea/gavin/map-client-vue/releases/tag/v1.0.3
  - 标签列表: https://biboer.cn/gitea/gavin/map-client-vue/tags
  - 提交历史: https://biboer.cn/gitea/gavin/map-client-vue/commits/branch/main

🚀 用户升级指南:
  git pull origin main
  cd web && npm install
  npm run dev

🔄 与原版本对比

特性 v1.0 v2.0
字符集处理 失败就失败 自动降级
错误提示 ⚠️ 简单 详细
Release 验证 显示 URL
工具检查 检查 jq
文档说明 ⚠️ 简单 完善
手动指南 详细步骤

🎯 解决的核心问题

问题:字符集转换错误

错误信息

Error 3988 (HY000): Conversion from collation utf8mb4_0900_ai_ci 
into utf8_general_ci impossible for parameter

原因

  • Gitea 服务器的 MySQL 数据库配置为 utf8_general_ci
  • 不支持完整的 UTF-8 字符(如 Emoji: 🎉⏸️ 等)
  • release.md 中的中文内容包含这些字符

解决方案

  1. 首次尝试使用原始内容(中文 + Emoji
  2. 检测到字符集错误后
  3. 自动使用简化的英文版本
  4. 在英文版本中添加指向 release.md 的链接
  5. 提示用户可以在 Web 界面手动编辑

🧪 测试验证

已通过的测试

  1. 语法检查
bash -n release.sh
✅ 脚本语法正确
  1. 实际发布测试 (v1.0.3)
./release.sh
✅ 成功创建 Release
✅ 自动处理字符集问题
✅ 显示正确的 URL
  1. 错误处理测试
  • 检测到未安装 jq
  • 检测到分支不是 main
  • 检测到工作区不干净
  • 检测到字符集错误并降级

📚 相关资源

文档

示例输出

API 文档

🔜 后续建议

1. 更新 ~/pubsh/release.sh

如果你想在其他项目也使用新版本:

cp /Users/gavin/xhs/mcp-client-vue/release.sh ~/pubsh/release.sh

2. 服务器配置优化(可选)

如果可以访问 Gitea 服务器,建议升级 MySQL 配置:

-- 查看当前字符集
SHOW VARIABLES LIKE 'character_set%';

-- 升级到 utf8mb4
ALTER DATABASE gitea CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE release CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

3. 环境变量持久化

将 GITEA_TOKEN 添加到 shell 配置文件:

echo 'export GITEA_TOKEN="73c2e2cd8ca86dbeaebdeaef77cbab3564d5122a"' >> ~/.zshrc
source ~/.zshrc

4. 添加到 .gitignore

如果 token 存储在文件中:

echo '.env' >> .gitignore
echo '*.token' >> .gitignore

成功标志

  • 脚本语法正确
  • 执行权限已设置
  • 字符集问题已解决
  • 错误提示已改进
  • 文档已完善
  • 实际测试通过

🎉 总结

release.sh v2.0 已成功升级!主要改进包括:

  1. 智能化 - 自动处理字符集问题
  2. 友好化 - 详细的错误提示和指南
  3. 可靠性 - 确保 Release 一定能创建
  4. 完善性 - 完整的文档和示例

现在可以用于日常发布流程,无需担心字符集兼容性问题!


升级时间: 2025-10-15
脚本版本: v2.0
测试状态: 已验证
文档状态: 已完善