ci: create GitHub Release directly in publish-tag job #187

Merged
KofTwentyTwo merged 2 commits from ci/inline-release-create into develop 2026-05-13 23:28:08 +00:00
KofTwentyTwo commented 2026-05-13 21:45:27 +00:00 (Migrated from github.com)

Summary

v0.1.0-dev.50 landed as a tag but the Releases page stayed empty because GitHub's GITHUB_TOKEN cannot trigger downstream workflows. The release.yml listener for push: tags: never sees CI-pushed tags.

Fix: add a Create GitHub Release step to the existing publish-tag job so the Release object is created in the same job, no cross-workflow trigger needed. Direct API calls via gh release create work with the default token; only the push→workflow chain is blocked.

Behavior

  • Auto-runs after Create + push tag on every develop / main / rc/* / release/* push that produces a green matrix.
  • Idempotent — skips if the Release already exists (handles reruns).
  • Notes auto-generated: git log $prev..$TAG for the changelog, plus a Verification block linking back to the CI run.
  • Prerelease flag mirrors steps.version.outputs.prerelease.
  • release.yml left intact as fallback for manually-pushed tags.

Test plan

  • Merge to develop, watch the resulting CI run.
  • Confirm v0.1.0-dev.<N> tag AND a Release object appear on https://github.com/KofTwentyTwo/Jarvis/releases.
  • Idempotency: if the workflow re-runs, the Release-create step exits 0 with "already exists".

Closes #186

🤖 Generated with Claude Code

## Summary `v0.1.0-dev.50` landed as a tag but the Releases page stayed empty because GitHub's `GITHUB_TOKEN` cannot trigger downstream workflows. The `release.yml` listener for `push: tags:` never sees CI-pushed tags. Fix: add a `Create GitHub Release` step to the existing `publish-tag` job so the Release object is created in the same job, no cross-workflow trigger needed. Direct API calls via `gh release create` work with the default token; only the push→workflow chain is blocked. ## Behavior - Auto-runs after `Create + push tag` on every develop / main / rc/* / release/* push that produces a green matrix. - Idempotent — skips if the Release already exists (handles reruns). - Notes auto-generated: `git log $prev..$TAG` for the changelog, plus a Verification block linking back to the CI run. - Prerelease flag mirrors `steps.version.outputs.prerelease`. - `release.yml` left intact as fallback for manually-pushed tags. ## Test plan - [ ] Merge to develop, watch the resulting CI run. - [ ] Confirm `v0.1.0-dev.<N>` tag AND a Release object appear on https://github.com/KofTwentyTwo/Jarvis/releases. - [ ] Idempotency: if the workflow re-runs, the Release-create step exits 0 with "already exists". Closes #186 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Sign in to join this conversation.