发布流程
步骤概览
完成开发 → 创建 Tag → CI 自动构建 → 验证 Release → 更新文档步骤 1:完成代码开发
确保所有代码已提交并通过测试:
bash
# 确保所有更改已提交
git status
# 运行测试
npm test
# 确保在主分支
git checkout main
git pull origin main步骤 2:创建 Git Tag
创建带注释的 Tag
bash
# 创建带注释的 tag(推荐)
git tag -a v1.0.0 -m "Release version 1.0.0"
# 或创建轻量 tag
git tag v1.0.0版本号规范
遵循 语义化版本:
| 版本变更 | 说明 | 示例 |
|---|---|---|
| MAJOR | 不兼容的 API 修改 | 1.0.0 → 2.0.0 |
| MINOR | 向下兼容的功能新增 | 1.0.0 → 1.1.0 |
| PATCH | 向下兼容的问题修复 | 1.0.0 → 1.0.1 |
推送 Tag
bash
# 推送单个 tag
git push origin v1.0.0
# 或推送所有 tags
git push origin --tags步骤 3:等待 CI 构建完成
推送 tag 后,GitHub Actions 会自动触发构建流程。
查看构建进度
- 进入仓库的 Actions 页面
- 找到对应的 workflow 运行记录
- 点击查看详细日志
构建失败处理
如果构建失败:
- 查看日志找出失败原因
- 修复问题并提交
- 删除失败的 tag 并重新创建
bash
# 删除本地 tag
git tag -d v1.0.0
# 删除远程 tag
git push origin :refs/tags/v1.0.0
# 修复问题后重新创建
git tag -a v1.0.0 -m "Release version 1.0.0"
git push origin v1.0.0步骤 4:验证 Release
构建完成后,检查 Release 页面。
检查清单
- [ ] 所有构建产物已上传
- [ ] 文件大小合理
- [ ] Attestation 已生成(显示 "Verified" 标记)
- [ ] Release Notes 正确
本地验证
下载文件并使用 gh CLI 验证:
bash
# 下载文件
curl -LO https://github.com/your-org/your-repo/releases/download/v1.0.0/app
# 验证 attestation
gh attestation verify ./app --repo your-org/your-repo步骤 5:更新文档
在项目 README 中添加下载和验证说明:
markdown
## 下载
从 [Releases](https://github.com/your-org/your-repo/releases) 页面下载最新版本。
## 验证软件来源
下载后,使用 GitHub CLI 验证文件来源:
\`\`\`bash
gh attestation verify ./your-app --repo your-org/your-repo
\`\`\`
验证成功表示该软件确实由官方 CI 构建。自动化发布脚本
可以创建脚本简化发布流程:
bash
#!/bin/bash
# release.sh
set -e
VERSION=$1
if [ -z "$VERSION" ]; then
echo "Usage: ./release.sh <version>"
echo "Example: ./release.sh 1.0.0"
exit 1
fi
# 确保在 main 分支
git checkout main
git pull origin main
# 运行测试
npm test
# 创建 tag
git tag -a "v${VERSION}" -m "Release version ${VERSION}"
# 推送 tag
git push origin "v${VERSION}"
echo "Tag v${VERSION} pushed. Check Actions for build status."
echo "https://github.com/$(git remote get-url origin | sed 's/.*github.com[:/]\(.*\)\.git/\1/')/actions"使用方式:
bash
chmod +x release.sh
./release.sh 1.0.0发布后检查
发布完成后,建议进行以下检查:
- 功能测试 - 下载并测试软件功能
- 通知相关人员 - 告知团队新版本已发布
- 监控问题 - 关注用户反馈和 Issue