xerahs-release-bump-tag
3
总安装量
2
周安装量
#56038
全站排名
安装命令
npx skills add https://github.com/sharex/xerahs --skill xerahs-release-bump-tag
Agent 安装分布
gemini-cli
2
opencode
2
codebuddy
2
github-copilot
2
codex
2
kimi-cli
2
Skill 文档
XerahS Release Bump Tag
Overview
Use this skill to run release steps in strict order:
- Step 1: Run
.ai/skills/maintenance-chores/SKILL.mdfirst - Step 2: Run
.ai/skills/update-changelog/SKILL.mdsecond (optional if noCHANGELOG.mdexists) - Step 3: Verify build, then execute bump/commit/push/tag automation
- Step 4: Monitor the tag-triggered release workflow every 2 minutes
- Step 5: If failure occurs, inspect logs, fix issues, and retry with the next patch version
- Step 6: If requested, set the successful release as pre-release
Step 3 performs:
- Pre-check: Run
dotnet build src/desktop/XerahS.sln; do not proceed if build fails. - Prompts for
x/y/zbump type (major/minor/patch) unless specified. - Updates every
Directory.Build.propsfile that defines<Version>. - Stages all current repo changes.
- Commits with version-prefixed message.
- Pushes current branch and creates/pushes annotated tag
vX.Y.Z.
Step 4-5 performs:
- Find tag run for
Release Build (All Platforms). - Poll run status every 120 seconds until completion.
- On failure, inspect failing job logs and identify first blocking error.
- Fix root cause in code/workflow/scripts.
- Re-run local pre-check build.
- Retry release using next patch bump, then monitor again.
- Repeat until workflow succeeds.
Primary Command
From repository root:
./.ai/skills/xerahs-release-bump-tag/scripts/run-release-sequence.sh
Automated monitor + pre-release (recommended):
./.ai/skills/xerahs-release-bump-tag/scripts/run-release-sequence.sh --assume-maintenance-done --assume-changelog-done --monitor --set-prerelease --bump z --yes
Manual monitor (fallback, PowerShell example):
gh run list --limit 10 --json databaseId,workflowName,headBranch,status,conclusion,url
Start-Sleep -Seconds 120
gh run view <run-id> --json status,conclusion,jobs,url
Non-Interactive Examples
Patch bump, no prompts:
./.ai/skills/xerahs-release-bump-tag/scripts/run-release-sequence.sh --assume-maintenance-done --assume-changelog-done --bump z --yes
Patch bump with built-in 2-minute monitoring:
./.ai/skills/xerahs-release-bump-tag/scripts/run-release-sequence.sh --assume-maintenance-done --assume-changelog-done --monitor --monitor-interval 120 --bump z --yes
Minor bump with custom commit token/summary:
./.ai/skills/xerahs-release-bump-tag/scripts/run-release-sequence.sh --assume-maintenance-done --assume-changelog-done --bump y --type CI --summary "Prepare release artifacts" --yes
Preview only:
./.ai/skills/xerahs-release-bump-tag/scripts/run-release-sequence.sh --assume-maintenance-done --assume-changelog-done --bump z --dry-run --yes
When bash is unavailable (e.g. Windows PowerShell)
On environments where bash is not in PATH, execute the sequence manually:
-
Step 1 – Maintenance
git pull --recurse-submodulesgit submodule update --init --recursive
-
Step 2 – Changelog
- Run
.ai/skills/update-changelog/SKILL.md. - Skip if no
CHANGELOG.mdor user confirms skip.
- Run
-
Step 3 – Bump, commit, push, tag
- Run
dotnet build src/desktop/XerahS.sln; abort if it fails. - Read current version from root
Directory.Build.props. - Compute next version: patch
Z+1, minorY+1.0, majorX+1.0.0. - Ensure tag
v<new-version>does not exist locally or onorigin. - Update all
Directory.Build.propsfiles containing<Version>. git add -A->git commit -m "[v<new-version>] [CI] Release v<new-version>"->git push origin <current-branch>->git tag -a v<new-version> -m "v<new-version>"->git push origin v<new-version>.
- Run
-
Step 4 – Monitor every 2 minutes
- Find run:
gh run list --limit 10 --json databaseId,workflowName,headBranch,status,conclusion,url - Poll:
Start-Sleep -Seconds 120; thengh run view <run-id> --json status,conclusion,jobs,url
- Find run:
-
Step 5 – On failure, fix and retry
- Fetch failed job logs:
gh run view <run-id> --job <job-id> --log - Fix root cause in repository.
- Re-run
dotnet build src/desktop/XerahS.sln. - Repeat Step 3 with next patch version.
- Fetch failed job logs:
-
Step 6 – Set pre-release (when requested)
gh release edit v<new-version> --prerelease- Verify:
gh release view v<new-version> --json isPrerelease,url,assets
Default bump when unspecified: patch (z). Default commit type token: CI.
Behavior
- Require completion of
maintenance-choresfirst. - Require completion of
update-changelogsecond (skip if noCHANGELOG.mdor user confirms). - Before bump, run
dotnet build src/desktop/XerahS.sln; abort on failure. - Run
scripts/bump-version-commit-tag.sh(or PowerShell/manual equivalent when bash unavailable). - After tag push, monitor the release workflow every 120 seconds until complete.
- If failed, inspect logs, fix root cause, and retry with next patch version.
- Continue retry loop until release workflow is successful.
- If requested, mark successful release as pre-release.
Guardrails
- Do not skip sequence unless user explicitly requests bypass.
- Do not commit/push during maintenance/changelog steps.
- Always verify build before bump/tag.
- Always monitor workflow after tag push; do not stop at tag creation.
- Always inspect logs on failure and fix root cause before retry.
- Always use a new patch version for retries requiring new commits/tags.
- Abort on detached HEAD.
- Abort if version format is not
X.Y.Z. - Abort if matching tag already exists locally or remotely.
- Support
--no-pushand--no-tagwhen partial flow is needed.
Agent usage (Cursor / Codex)
When executing this skill:
- Run sequence: maintenance -> changelog -> build verify -> bump/commit/push/tag.
- Use bash scripts if bash exists; otherwise use PowerShell/manual flow.
- Default bump is patch (
z) when unspecified. - Monitor tag workflow every 120 seconds until completion.
- On failure, inspect logs, fix issue, and retry with next patch version.
- If requested, set the final successful release to pre-release.
- Report final version, commit hash, branch push status, tag push status, run URL, and pre-release status.
Notes (lessons learnt)
- Windows/PowerShell: bash may be unavailable; manual fallback must be first-class.
- Build before bump: avoid tagging broken trees.
- Changelog optional: do not block if
CHANGELOG.mddoes not exist unless user requires it. - Version sync: update every
Directory.Build.propswith<Version>. - Release reliability loop: tag push is not the end; monitor, fix, and retry until green.