Skip to content

Replace local release script with GitHub Actions workflow trigger#117

Merged
jancurn merged 1 commit intomainfrom
claude/plan-github-actions-releases-RdEt6
Mar 25, 2026
Merged

Replace local release script with GitHub Actions workflow trigger#117
jancurn merged 1 commit intomainfrom
claude/plan-github-actions-releases-RdEt6

Conversation

@jancurn
Copy link
Member

@jancurn jancurn commented Mar 25, 2026

Summary

Closes #116

  • Rewrote scripts/publish.sh from a 255-line local release script to a ~70-line thin wrapper that validates preconditions (gh auth, branch, clean workdir, up-to-date) and triggers release.yml via gh workflow run, then opens the run URL in the browser
  • Hardened release.yml: added concurrency: { group: release, cancel-in-progress: false } to prevent concurrent releases, replaced gh release create CLI with softprops/action-gh-release@v2 (more reliable), added build:readme step for releases, included README.md in the version-bump commit
  • Fixed scripts/update-readme.sh cross-platform sed issue (sed -i '' is macOS-only, changed to sed -i for Ubuntu CI runners)
  • Added release:pre npm script for pre-releases (npm run release:pre)
  • Updated docs: CLAUDE.md releasing section and CHANGELOG.md

Note: missing v0.2.0 GitHub release

The v0.2.0 tag exists but no GitHub release was created (the original workflow failed). This needs to be created manually by a maintainer — there's no "create release" API available through the current tooling. Run:

gh release create v0.2.0 --title "v0.2.0" --generate-notes

Test plan

  • Shell script syntax validated (bash -n scripts/publish.sh)
  • All 430 unit tests pass
  • Verify release.yml workflow runs correctly on next release trigger
  • Verify softprops/action-gh-release@v2 creates GitHub releases properly
  • Verify build:readme step works on Ubuntu CI runner (sed fix)
  • Create missing v0.2.0 GitHub release manually

https://claude.ai/code/session_01KkbQ8d5Ek41pyNtu3XAMQt

- Rewrite scripts/publish.sh as a thin wrapper that validates preconditions
  and triggers release.yml via `gh workflow run`
- Harden release.yml: add concurrency protection, replace `gh release create`
  with softprops/action-gh-release@v2, add build:readme step for releases
- Fix scripts/update-readme.sh sed portability (macOS → Linux)
- Add `release:pre` npm script for pre-releases
- Update CLAUDE.md releasing section and CHANGELOG.md

Closes #116

https://claude.ai/code/session_01KkbQ8d5Ek41pyNtu3XAMQt
@jancurn jancurn merged commit ffcc785 into main Mar 25, 2026
10 of 11 checks passed
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.

Replace fragile local release script with GitHub Actions workflow trigger

3 participants