发布技能 release

使用基于标签的工作流为单库插件创建新版本发布。

DevOps 0 次安装 0 次浏览 更新于 3/2/2026

name: release description: 使用基于前缀的标签工作流为单库插件创建新版本发布。当用户明确要求“发布”或“创建发布”时使用。

发布技能

使用基于前缀的标签工作流为单库插件创建新版本发布。

何时使用

  • 用户明确要求“发布”或“创建发布”
  • 用户要求“发布”或“发布”新版本
  • 用户要求“标记”版本
  • 用户说“让我们发布v0.2.0”或类似

插件识别

这是一个单库,包含多个插件。首先,确定要发布的插件:

插件 版本文件 标签格式 示例
Stash Downloader plugins/stash-downloader/package.json downloader-vX.Y.Z downloader-v0.5.2
Stash Browser plugins/stash-browser/package.json browser-vX.Y.Z browser-v0.1.0

如果用户没有指定,询问要发布哪个插件。如果两个都改变了,分别发布。

发布前检查清单

在创建发布之前,验证:

  1. 在开发分支上:git branch --show-current
  2. 没有未提交的更改:git status
  3. 类型检查通过:npm run type-check
  4. 通过lint:npm run lint
  5. 测试通过:npm test -- --run
  6. 构建成功:npm run build

基于标签的发布过程

第1步:确定版本提升

  1. 检查当前版本:读取插件的package.json版本字段
  2. 查看自上次标签以来的提交git log $(git describe --tags --match "downloader-v*" --abbrev=0)..HEAD --oneline(或Browser的browser-v*
  3. 确定提升类型
提交类型 提升 示例
破坏性变更(feat!:, BREAKING CHANGE 主要 0.1.0 → 1.0.0
新功能(feat: 次要 0.1.0 → 0.2.0
错误修复,补丁(fix:, docs:, chore: 补丁 0.1.0 → 0.1.1

第2步:合并开发到主分支并发布

对于Stash Downloader:

# 从开发分支,检出主分支并合并
git checkout main
git merge dev

# 在插件的package.json中更新版本
cd plugins/stash-downloader
npm version patch  # 或次要/主要

# 提交版本提升
git add .
git commit -m "$(cat <<'COMMIT'
🔖 chore: release downloader-vX.Y.Z

🤖 由 [Claude Code](https://claude.com/claude-code) 生成

共同作者:Claude Opus 4.5 <noreply@anthropic.com>
COMMIT
)"

# 创建并推送标签(带有downloader-前缀!)
git tag downloader-vX.Y.Z
git push origin main --tags

对于Stash Browser:

# 从开发分支,检出主分支并合并
git checkout main
git merge dev

# 在插件的package.json中更新版本
cd plugins/stash-browser
npm version patch  # 或次要/主要

# 提交版本提升
git add .
git commit -m "$(cat <<'COMMIT'
🔖 chore: release browser-vX.Y.Z

🤖 由 [Claude Code](https://claude.com/claude-code) 生成

共同作者:Claude Opus 4.5 <noreply@anthropic.com>
COMMIT
)"

# 创建并推送标签(带有browser-前缀!)
git tag browser-vX.Y.Z
git push origin main --tags

第3步:等待并同步开发

⚠️ 重要:不要立即推送到开发!

GitHub Pages使用并发组。如果在稳定工作流完成之前推送到开发,稳定部署会被取消。

# 1. 等待工作流完成
#    检查:https://github.com/Codename-11/Stash-Downloader/actions

# 2. 工作流完成后,同步开发与主分支
git checkout dev
git merge main
git push origin dev

发布标签后会发生什么

GitHub Actions自动:

  1. 运行CI(类型检查,lint,测试)
  2. 构建插件
  3. 更新GitHub Pages(Stash插件索引)
  4. 生成AI发布说明(如果配置了GOOGLE_API_KEY)
  5. 创建GitHub发布,包括:
    • 自动生成的变更日志
    • 安装说明
    • 附加的ZIP文件

如果发布被取消

如果你不小心太早推送到开发并取消了稳定部署:

# 重新推送标签以再次触发工作流
git push origin --delete downloader-vX.Y.Z  # 或browser-vX.Y.Z
git push origin downloader-vX.Y.Z

基于PR的发布(可选)

对于你希望在合并前由Claude审查的重要发布:

# 从开发创建发布分支
git checkout -b release/downloader-vX.Y.Z dev

# 在插件的package.json中更新版本,提交
cd plugins/stash-downloader
npm version patch
git add .
git commit -m "🔖 chore: release downloader-vX.Y.Z"

# 推送并创建PR到主分支
git push -u origin release/downloader-vX.Y.Z
gh pr create --base main --title "🔖 Release downloader-vX.Y.Z" --body "发布说明..."

# PR合并后,检出主分支并标记
git checkout main
git pull origin main
git tag downloader-vX.Y.Z
git push origin downloader-vX.Y.Z

重要说明

  • 标签格式必须包含插件前缀:downloader-vX.Y.Zbrowser-vX.Y.Z
  • 插件的package.json中的版本必须与标签版本匹配(无前缀)
  • 始终从开发分支开始 - 永远不要直接提交到主分支
  • 等待工作流完成 后再同步开发
  • 推送到main没有标签会触发任何操作
  • 在推送标签后验证GitHub Actions中的发布是否成功
  • 分别发布插件 - 如果两个插件都改变了,创建单独的标签