关于 deploy-release
deploy-release 是用于创建 GitHub 版本发布的 Agent 技能,可通过 release-please 或手动流程操作。它支持发布准备、版本标签,以及容器化应用发布流程中的草稿和预发布选项。
主要功能
- 01选择 release-please 或手动流程
- 02检查发布配置和待处理发布 PR
- 03创建带自动生成说明的 GitHub 发布
- 04支持草稿和预发布选项
- 05可设置 release-please 配置
适用场景
- 01从 main 创建带版本号的发布
- 02检查 release-please 自动化及待处理 PR
- 03在 GitHub 发布草稿或预发布版本
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ laurigates/ claude-plugins --skill deploy-release安装后在 Claude Code 中输入/deploy-release确认已加载。
详细介绍
发布创建命令
使用 release-please 自动化或手动发布工作流,为容器化应用创建 GitHub 发布。
何时使用此技能
| 在以下情况下使用此技能…… | 在以下情况下改用 deploy-handoff…… |
|---|---|
从 main 创建新发布并标记版本 | 为其他开发者或客户端记录已部署的服务 |
| 设置或审查 release-please 自动化和清单 | 为已部署的资源生成访问 URL、监控链接和入门清单 |
| 发布手动 GitHub 发布、草稿或预发布版本 | 为工单编写交接说明,而不是创建版本 |
| 推进容器化发布流水线中的版本标记环节 | 构建或强化容器映像本身(使用 container-development) |
上下文
- Git 远程仓库:!
git remote -v - 分支:!
git branch --show-current - 最近的标签:!
git tag --sort=-v:refname -l 'v*' --format='%(refname:short)' -n5 - 最近的发布提交:!
git log --oneline --max-count=5 - 发布配置:!
find . -maxdepth 1 -name 'release-please-config.json' - 清单:!
find . -maxdepth 1 -name '.release-please-manifest.json' - 变更日志:!
find . -maxdepth 1 -name 'CHANGELOG.md'
参数
从 $ARGUMENTS 解析:
$1(VERSION):语义化版本字符串(例如1.2.0、v2.0.0-rc.1)--draft:将发布创建为草稿(不发布)--prerelease:标记为预发布版本
执行
执行此发布工作流:
步骤 1:确定发布策略
检查项目使用的是 release-please 还是手动发布:
- 如果存在
release-please-config.json,使用 release-please 工作流 - 如果不存在 release-please 配置,使用 手动发布工作流
步骤 2a:release-please 工作流
如果已配置 release-please:
- 验证自上次发布标签以来是否存在符合约定式提交规范的提交
- 检查是否有待处理的发布 PR:
gh pr list --label "autorelease: pending" --json number,title,url - 如果存在发布 PR,报告其状态和 URL
- 如果不存在发布 PR,说明 release-please 会根据约定式提交自动创建 PR
- 说明合并发布 PR 后如何触发发布
步骤 2b:手动发布工作流
如果不存在 release-please 配置:
- 验证 VERSION 参数是否符合 semver 格式
- 检查工作区是否干净:
git status --porcelain - 确认当前分支是 main 或 master
- 使用以下命令创建发布:
gh release create v<VERSION> --title "v<VERSION>" --generate-notes - 如果传入了
--draft,添加--draft标志 - 如果传入了
--prerelease,添加--prerelease标志
步骤 3:设置 release-please(如果用户提出请求)
如果用户要求设置 release-please 自动化:
- 创建
release-please-config.json,并将发布类型设为 manifest:{ "$schema": "https://raw.githubusercontent.com/googleapis/release-please/main/schemas/config.json", "release-type": "simple", "packages": { ".": { "component": "<project-name>", "extra-files": [ {"type": "json", "path": "package.json", "jsonpath": "$.version"} ], "changelog-sections": [ {"type": "feat", "section": "Features"}, {"type": "fix", "section": "Bug Fixes"}, {"type": "perf", "section": "Performance"}, {"type": "refactor", "section": "Code Refactoring"}, {"type": "docs", "section": "Documentation"} ] } } } - 创建
.release-please-manifest.json,并填入当前版本:{ ".": "0.0.0" } - 建议添加 release-please GitHub Action 工作流
步骤 4:报告结果
打印摘要,包括:
- 发布版本和 URL(如果已创建)
- 发布 PR 状态(如果使用 release-please)
- 用户的后续步骤
Release-Please GitHub Action
推荐用于自动化的工作流:
name: Release
on:
push:
branches: [main]
permissions:
contents: write
pull-requests: write
jobs:
release:
runs-on: ubuntu-latest
steps:
- uses: googleapis/release-please-action@v4
with:
config-file: release-please-config.json
manifest-file: .release-please-manifest.json
Agent 优化
| 上下文 | 命令 |
|---|---|
| 列出最近的标签 | git tag --sort=-v:refname -l 'v*' -n5 |
| 检查发布 PR | gh pr list --label "autorelease: pending" --json number,title,url |
| 最新发布 | gh release view --json tagName,publishedAt,url |
| 创建发布 | gh release create v1.0.0 --generate-notes |
| 创建草稿 | gh release create v1.0.0 --draft --generate-notes |
| 创建预发布版本 | gh release create v1.0.0-rc.1 --prerelease --generate-notes |
| 列出所有发布 | gh release list --json tagName,isLatest,isDraft,isPrerelease |
| 自指定标签以来的提交 | git log v1.0.0..HEAD --oneline |
快速参考
| 标志 | 描述 |
|---|---|
--draft | 创建为草稿版本(公开不可见) |
--prerelease | 标记为预发布版本 |
--generate-notes | 根据提交自动生成版本说明 |
--notes-file FILE | 使用文件内容作为版本说明 |
--target BRANCH | 版本标签所针对的分支 |
相关技能
deploy-handoff- 生成部署交接文档container-development- 容器镜像构建与优化
评论
支持 Markdown