Skip to content

Add auto-tag workflow on plugin.json bump (closes the v1.12 -> v1.20.0 drift failure mode)#76

Merged
OptimNow merged 1 commit into
mainfrom
claude/auto-tag-on-plugin-bump
May 4, 2026
Merged

Add auto-tag workflow on plugin.json bump (closes the v1.12 -> v1.20.0 drift failure mode)#76
OptimNow merged 1 commit into
mainfrom
claude/auto-tag-on-plugin-bump

Conversation

@OptimNow
Copy link
Copy Markdown
Owner

@OptimNow OptimNow commented May 4, 2026

Summary

Adds .github/workflows/auto-tag-on-plugin-bump.yml. On every push to main that touches .claude-plugin/plugin.json, the workflow:

  1. Reads the version via jq, validates as X.Y.Z.
  2. Checks if refs/tags/v<version> already exists - skips if so.
  3. Otherwise creates an annotated tag and pushes it. release.yml then auto-fires from the new tag and publishes cloud-finops-v<version>.zip.

This closes the drift failure mode the repo hit between v1.12 (April) and v1.20.0 (today): plugin.json was bumped through several PRs without anyone manually tagging, so release.yml never fired and the README's "download the latest release" link kept resolving to a stale zip. The Codex audit (#75) caught it as P1.

Test plan

  • The workflow is path-filtered so it only fires when .claude-plugin/plugin.json actually changes - no accidental re-tag on README-only commits.
  • The "tag already exists" check handles the case where a maintainer manually pre-tags before merging the bump PR.
  • Permissions: contents: write only, no extra secrets.
  • First trigger will be the next time plugin.json bumps. If you want to validate immediately, you can bump plugin.json to 1.20.1 in a small follow-up PR; the workflow should auto-create v1.20.1.

🤖 Generated with Claude Code

Closes the failure mode the repo hit between v1.12 and v1.20.0: plugin.json
version was bumped through several PRs (1.13, 1.14, ..., 1.19) without
anyone manually tagging, so release.yml never fired and the latest GitHub
release zip drifted weeks behind main. Codex flagged this as P1 in its
follow-up audit (#75) and the manual fix was to push v1.20.0 by hand.

The new workflow .github/workflows/auto-tag-on-plugin-bump.yml runs on
every push to main where .claude-plugin/plugin.json changed:
1. Reads the version field via jq, validates it as semver-like (X.Y.Z).
2. Checks whether refs/tags/v<version> already exists - skips if so
   (handles the case where someone manually pre-tagged).
3. Otherwise creates an annotated tag pointing at the merge commit and
   pushes it. release.yml then auto-fires from the new tag and publishes
   cloud-finops-v<version>.zip.

Permissions: contents: write (needed to push the tag). The default
GITHUB_TOKEN is sufficient.

Operational note: the tag is created by github-actions[bot] so the commit
history shows the bot as the tagger. The release body is still auto-
populated by release.yml's generate_release_notes flag, so the human-
visible release page gets the usual PR / commit summary.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@OptimNow OptimNow merged commit 0077948 into main May 4, 2026
1 check passed
@OptimNow OptimNow deleted the claude/auto-tag-on-plugin-bump branch May 4, 2026 12:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant