release
Cut a release and put it in production. Use when the user asks to release, tag a version, write the changelog, promote to production, or what's in the next version.
SKILL.md.claude/skills/release/SKILL.md
GitHubRelease to production
Releases are version tags the user pushes; production moves through a promotion pull
request (docs/deploy.md, "Releases → production"; the code is scripts/release.ts).
- What's in it.
bun scripts/release.ts notes HEADprints the notes since the last tag, grouped from the Conventional Commit titles. Pick the version from them: any breaking change (!, or aBREAKING CHANGE:footer) is a new major, afeata minor, otherwise a patch.git describe --tags --abbrev=0is the last one. - The mobile version.
versioninapps/mobile/app.config.tsmust equal it (store builds carry it, and over-the-air updates only reach builds of their version). Bump it in a pull request and merge that first; the release check refuses a mismatch. - Tag a commit that deployed, with the user's go-ahead (it's a push): the merge once
deploy.yml has passed for it (
gh run list --workflow deploy.yml --commit <sha>), or the staging bump right after it (master's head, usually; a release of it ships the merge's images).git tag v<version> <commit> && git push origin v<version>. release.yml checks it (it waits while CI and deploy.yml still run, and refuses a commit with no images) and publishes the GitHub release; mobile.yml starts the store builds once that passed. Tags can't be moved, so check before pushing. - Promote. Once staging is healthy on those images:
bun run promote v<version>openschore(infra): deploy v<version> to production, which pointsdeploy/environments/production/release.yamlat the tag (production's charts, values and Secrets are read there) and the release's images. It runs as the user, so CI runs on the pull request. - Deploy by merging it. Argo CD syncs
production-dataandproduction-stack; production admits only images deploy.yml signed onmaster. Watch it as in the deploy skill, with the production cluster's context.
A tag pushed by mistake: gh release delete v<version> --cleanup-tag (before anything
was promoted). Undoing a release in production: the rollback skill.