cc / .github /RELEASE_PROCESS.md
hequ's picture
Upload 221 files
69b897d verified

发布流程说明

概述

本项目采用全自动化的版本管理和发布流程。VERSION文件由GitHub Actions自动维护,无需手动修改。

自动发布流程

1. 工作原理

  1. 代码推送: 当你推送代码到main分支时
  2. 自动版本更新: auto-version-bump.yml会:
    • 检测是否有实质性代码变更(排除.md文件、docs/目录等)
    • 如果有代码变更,自动将版本号+1并更新VERSION文件
    • 提交VERSION文件更新到main分支
  3. 自动发布: release-on-version.yml会:
    • 检测到只有VERSION文件变更的提交
    • 自动创建Git tag
    • 创建GitHub Release
    • 构建并推送Docker镜像
    • 发送Telegram通知(如果配置)

2. 工作流文件说明

  • auto-version-bump.yml: 自动检测代码变更并更新VERSION文件
  • release-on-version.yml: 检测VERSION文件单独提交并触发发布
  • docker-publish.yml: 在tag创建时构建Docker镜像(备用)
  • release.yml: 在tag创建时生成Release(备用)

3. 版本号规范

  • 使用语义化版本号:MAJOR.MINOR.PATCH
  • 默认自动递增PATCH版本(例如:1.1.10 → 1.1.11)
  • VERSION文件只包含版本号,不包含v前缀
  • Git tag会自动添加v前缀

4. 触发条件

会触发版本更新的文件变更:

  • 源代码文件(.js, .ts, .jsx, .tsx等)
  • 配置文件(package.json, Dockerfile等)
  • 其他功能性文件

不会触发版本更新的文件变更:

  • Markdown文件(*.md)
  • 文档目录(docs/)
  • GitHub配置(.github/)
  • VERSION文件本身
  • .gitignore、LICENSE等

使用指南

正常开发流程

  1. 进行代码开发和修改
  2. 提交并推送到main分支
  3. 系统自动完成版本更新和发布
# 正常的开发流程
git add .
git commit -m "feat: 添加新功能"
git push origin main

# GitHub Actions会自动:
# 1. 检测到代码变更
# 2. 更新VERSION文件(例如:1.1.10 → 1.1.11)
# 3. 创建新的release和Docker镜像

跳过版本更新

如果只是更新文档或其他非代码文件,系统会自动识别并跳过版本更新。

故障排除

版本没有自动更新

  1. 检查是否有实质性代码变更
  2. 查看GitHub Actions运行日志
  3. 确认推送的是main分支

需要手动触发发布

如果需要手动控制版本:

  1. 直接修改VERSION文件
  2. 提交并推送
  3. 系统会检测到VERSION变更并触发发布

注意事项

  • 不要在同一个提交中既修改代码又修改VERSION文件
  • 不要手动创建tag,让系统自动管理
  • 系统会自动避免死循环(GitHub Actions的提交不会触发新的版本更新)