gh-releaselisted
Install: claude install-skill structure-projects/structure-agent-rules
# GitHub Release
> 创建 GitHub Release + Tag。**SDLC 的最后一步**。
## 前置条件(MUST 全部满足)
1. **变更已归档**:`changes/archive/<id>/` 存在
2. **changelog 已更新**:`changes/changelog/<version>.md` 含本次条目
3. **当前分支为 master**(或 develop,视分支策略)
4. **本地与远程同步**:`git pull` 最新
## 执行步骤
### 第 1 步:确认版本号
```bash
# 读取当前版本
grep -m1 "version" pom.xml # Java
# 或
jq -r .version package.json # Node
# 确认目标版本(MUST 用户确认)
# 例如:1.2.0
```
### 第 2 步:打 Tag
```bash
# 切到 master 并拉最新
git checkout master
git pull
# 打附注 Tag
git tag -a v1.2.0 -m "Release v1.2.0"
# 推送 Tag
git push origin v1.2.0
```
**关键约束**:
- ✅ **MUST** 用附注 Tag(`git tag -a`)
- ✅ **MUST** Tag 格式 `v<X.Y.Z>`(如 `v1.2.0`)
- ❌ **MUST NOT** 用轻量 Tag(`git tag`,无附注)
### 第 3 步:创建 GitHub Release
```bash
# 方式 A:从 changelog 生成 notes(推荐)
gh release create v1.2.0 \
--title "v1.2.0" \
--notes-file changes/changelog/1.2.0.md
# 方式 B:自动生成 notes
gh release create v1.2.0 --generate-notes
# 方式 C:手动编写 notes
gh release create v1.2.0 \
--title "v1.2.0" \
--notes "$(cat <<'EOF'
## Added
- 新增用户登录接口
## Fixed
- 修复 token 过期问题
EOF
)"
```
**MUST 用户确认后执行**。
### 第 4 步:(可选)触发发布流水线
根据项目类型触发对应的发布流水线:
```bash
# Maven 项目
gh workflow run release-maven.yml \
-f module=<module> \
-f version=1.2.0
# npm 组件
gh workflow run publish-npm.yml \
-f component=<component> \
-f version=1.2.0
# Docker 镜像
gh workflow run build-and-push.yml \
-f module=<module> \
-f version=1.2.0
```
**MUST 用户确认后执行**。
### 第 5 步:验证
```bash
# 查看 Release
gh release view v1.2.0
# 查看 workflow 运