بنقرة واحدة
devops-release
发布 Git 仓库 Release。使用 qtcloud-devops CLI,必须先写 CHANGELOG 再发布,禁止跳步。支持子模块和主仓库两种流程。
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
发布 Git 仓库 Release。使用 qtcloud-devops CLI,必须先写 CHANGELOG 再发布,禁止跳步。支持子模块和主仓库两种流程。
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
代码质量审计,使用 lizard/ruff 对 Python 项目进行复杂度分析、代码规范检查和重构建议。
Code 阶段 DevOps 基础设施管理。项目脚手架初始化、编码规范工具链配置、pre-commit 设置、CI lint 门禁规则。
审查仓库状态、CHANGELOG、版本一致性等,支持发布前检查、代码审查、文档审查等多场景。
数据需求文档(DRD)编写技能。用户需要编写或评审 DRD 时使用,指导定义数据 schema、字段规范、枚举约束和数据关系,作为数据契约独立于实现。
三层测试体系:单元测试、服务测试、端到端测试
QTData product provider service built with FastAPI and uv
| name | devops-release |
| description | 发布 Git 仓库 Release。使用 qtcloud-devops CLI,必须先写 CHANGELOG 再发布,禁止跳步。支持子模块和主仓库两种流程。 |
⚠ 硬约束:不执行预检查 → 禁止发布 加载此 Skill 后,必须按下方工作流从头到尾逐行执行命令。 标有"必须执行,不可跳过"的步骤是强制性的,AI 不得合并、跳过或提前执行后续步骤。
qtcloud-devops release --version v0.1.0 # 标签 + GitHub Release(默认)
qtcloud-devops release --version v0.1.0 --tag-only # 仅标签
qtcloud-devops release --version v0.1.0 --release-only # 仅 GitHub Release(tag 须已存在)
qtcloud-devops release --version v0.1.0 --dry-run # 仅检查
qtcloud-devops release --version v0.1.0 -y # 跳过确认
git remote get-url origin 自动检测,不需要 --repo 参数--tag-only 和 --release-only 互斥确保 qtcloud-devops 命令可用:
which qtcloud-devops
如未安装:
pip install qtcloud-devops-cli
必须执行,不可跳过
VERSION="v0.4.0"
qtcloud-devops release --version "$VERSION" --dry-run
若预检查失败,根据提示修复后重新执行。
CLI 会在执行前展示发布摘要并等待 y/N 确认。使用 -y 跳过。
子模块使用 scoped tag(如 cli/v0.1.0、python/v0.1.0)。
进入子模块内包含 pyproject.toml 和 CHANGELOG.md 的目录执行(这样无需 --changelog 参数):
# 1. 进入子模块的包目录(pyproject.toml 和 CHANGELOG.md 所在目录)
cd <子模块路径>/<包目录> # 如 apps/qtcloud-devops/src/cli
# 2. 预检查
qtcloud-devops release --version "scope/vX.Y.Z" --dry-run
# 3. 发布(自动使用子模块的 remote)
VERSION="scope/vX.Y.Z"
qtcloud-devops release --version "$VERSION" -y
# 4. 返回主仓库,更新子模块引用
cd <主仓库根目录>
git add <子模块路径>
git commit -m "chore: update <子模块路径> submodule — $VERSION"
git push
VERSION="vX.Y.Z"
# 1. 创建预发布版本(可选)
gh release create "${VERSION}-rc.1" --prerelease \
--title "vX.Y.Z RC" \
--notes "$(sed -n "/^## \[X.Y.Z\]/,/^## \[/p" CHANGELOG.md | sed '1d;$d')"
# 2. 确认所有子模块已更新
git submodule update --remote
git status
# 3. 更新 CHANGELOG.md
# 4. 提交 CHANGELOG.md
git add CHANGELOG.md && git commit -m "chore: prepare CHANGELOG for $VERSION"
git push
# 5. 预检查
qtcloud-devops release --version "$VERSION" --dry-run
# 6. 发布
qtcloud-devops release --version "$VERSION" -y
qtcloud-devops CLI 自动处理回滚(推送失败、Release 创建失败时)。手动回滚:
git tag -d vX.Y.Z
git push origin --delete vX.Y.Z 2>/dev/null || true
git reset --hard HEAD~1
gh release delete vX.Y.Z-rc.1 --repo $(gh repo view --json nameWithOwner -q .nameWithOwner) --yes
| 错误 | 原因 | 解决方案 |
|---|---|---|
| CHANGELOG 缺少版本 | 忘记更新 CHANGELOG.md | 添加版本记录后再发布 |
| 标签已存在(--release-only) | 标签不存在 | 先创建标签 |
| 工作区脏 | 有未提交变更 | 提交或暂存变更后再发布 |
| Release Notes 为空 | 版本格式不匹配 | 检查 CHANGELOG 版本标题格式 |
| 无法解析仓库 | git remote 不可用 | 检查是否在 git 仓库内 |