- 版本号以 main.go 中的
Version为唯一来源,格式固定为v主版本.次版本.修订号,例如v3.4.3。 - Git 标签必须与
Version完全一致。 - GitHub Release 名称、Tag 名称、发行包文件名必须与该版本号保持一致。
- ARCHITECTURE.md 顶部文档版本建议同步更新,避免文档和程序版本脱节。
- 如果某个标签已经发布,后续改动必须递增补丁版本,不要重打已有标签。
- 修改 main.go 中的版本号。
- 如有必要,同步更新 ARCHITECTURE.md 中的版本说明。
- 验证模块和编译:
go mod verify
go build ./...- 提交代码并推送到主分支。
- 创建并推送同名标签,例如:
git tag -a v3.4.3 -m "Release v3.4.3"
git push origin main
git push origin v3.4.3- 推送标签后,GitHub Actions 会自动:
- 校验 main.go 的版本号和 tag 一致
- 构建 Linux amd64、Windows amd64、MacOS arm64 三个平台附件
- 自动创建或更新 GitHub Release
- 自动上传压缩包和对应的
.sha256文件
- 如需本地手动生成单个平台发行包:
./scripts/package_release.sh也可以指定平台:
TARGET_OS=windows TARGET_ARCH=amd64 ./scripts/package_release.sh
TARGET_OS=MacOS TARGET_ARCH=arm64 ./scripts/package_release.sh脚本对外推荐使用 TARGET_OS 和 TARGET_ARCH。内部仍会自动映射到 Go 的标准目标平台,例如 MacOS -> darwin。
脚本 scripts/package_release.sh 会生成以下内容:
- 编译后的可执行文件
opensqt_market_maker或opensqt_market_maker.exe - 整个
live_server/目录 config.example.yamlconfig.yamlREADME.mdARCHITECTURE.md部署教程.pdf
- 发布包中的
config.yaml由config.example.yaml复制生成,不会使用你本机的真实 config.yaml。 - 这样可以保留开箱即用的目录结构,同时避免把 API Key 或私钥打进公开 Release。
- 发行包:
opensqt_market_maker_v3.4.3_linux_amd64.tar.gz - Windows 发行包:
opensqt_market_maker_v3.4.3_windows_amd64.zip - MacOS 发行包:
opensqt_market_maker_v3.4.3_MacOS_arm64.tar.gz - 校验文件:
opensqt_market_maker_v3.4.3_linux_amd64.tar.gz.sha256