mcpField
D
deploy-release

deploy-release

github.com/laurigates云与 DevOps5955 次安装1 天前更新
代码仓库

关于 deploy-release

deploy-release 是用于创建 GitHub 版本发布的 Agent 技能,可通过 release-please 或手动流程操作。它支持发布准备、版本标签,以及容器化应用发布流程中的草稿和预发布选项。

主要功能

  1. 01选择 release-please 或手动流程
  2. 02检查发布配置和待处理发布 PR
  3. 03创建带自动生成说明的 GitHub 发布
  4. 04支持草稿和预发布选项
  5. 05可设置 release-please 配置

适用场景

  1. 01从 main 创建带版本号的发布
  2. 02检查 release-please 自动化及待处理 PR
  3. 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 还是手动发布:

  1. 如果存在 release-please-config.json,使用 release-please 工作流
  2. 如果不存在 release-please 配置,使用 手动发布工作流
步骤 2a:release-please 工作流

如果已配置 release-please:

  1. 验证自上次发布标签以来是否存在符合约定式提交规范的提交
  2. 检查是否有待处理的发布 PR:gh pr list --label "autorelease: pending" --json number,title,url
  3. 如果存在发布 PR,报告其状态和 URL
  4. 如果不存在发布 PR,说明 release-please 会根据约定式提交自动创建 PR
  5. 说明合并发布 PR 后如何触发发布
步骤 2b:手动发布工作流

如果不存在 release-please 配置:

  1. 验证 VERSION 参数是否符合 semver 格式
  2. 检查工作区是否干净:git status --porcelain
  3. 确认当前分支是 main 或 master
  4. 使用以下命令创建发布:
    gh release create v<VERSION> --title "v<VERSION>" --generate-notes
    
  5. 如果传入了 --draft,添加 --draft 标志
  6. 如果传入了 --prerelease,添加 --prerelease 标志
步骤 3:设置 release-please(如果用户提出请求)

如果用户要求设置 release-please 自动化:

  1. 创建 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"}
          ]
        }
      }
    }
    
  2. 创建 .release-please-manifest.json,并填入当前版本:
    {
      ".": "0.0.0"
    }
    
  3. 建议添加 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
检查发布 PRgh 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