ci: release pull requests, and conventional-commit PR titles #1

Merged
dhkatz merged 1 commits from release-prs into main 2026-11-03 08:40:38 +00:00
Owner

Releases as pull requests, the same in all five app repos (hub, catalog, live, riftbound, karaoke). The Gitea side (PRs only into main, squash merges, required checks, v* tags only by release-bot, its RELEASE_TOKEN org secret) is dhkatz/infra modules/app-repo.

  • .gitea/workflows/pull-request.yml: the PR title must be a conventional commit (feat(api): …, fix: …, feat!: …); it becomes the commit on main. chore(release) only from release-bot's release branch. Required to merge (Pull request / title).
  • .gitea/default_merge_message/SQUASH_TEMPLATE.md: the squash commit is <PR title> (#<n>) plus the description.
  • .gitea/workflows/release.yml, on every push to main, as release-bot (RELEASE_TOKEN):
    • if the commit is a merged chore(release): vX.Y.Z: tag it vX.Y.Z (lightweight), push the tag (CI builds the image, Komodo deploys prod), publish the release with git-cliff's notes;
    • otherwise, if anything releasable landed since the last tag: rewrite the release branch (CHANGELOG.md) and open or update chore(release): vX.Y.Z.
  • cliff.toml (git-cliff 2.14.2, pinned by sha512): feat → minor, fix/perf/revert → patch, breaking → minor while 0.x; chore/ci/docs/test/style/build/refactor alone don't release. Only conventional commits count, so the history before this is left out.
  • CHANGELOG.md: header only; release PRs fill it.
  • Agent notes (CLAUDE.md / AGENTS.md): the PR flow and title format; never tag by hand.

After merging, Release runs on main and should report nothing to release (this PR is ci:); the first feat:/fix: PR merged after it opens the first release PR.

🤖 Generated with Claude Code

Releases as pull requests, the same in all five app repos (hub, catalog, live, riftbound, karaoke). The Gitea side (PRs only into main, squash merges, required checks, `v*` tags only by release-bot, its `RELEASE_TOKEN` org secret) is dhkatz/infra `modules/app-repo`. - **`.gitea/workflows/pull-request.yml`**: the PR title must be a conventional commit (`feat(api): …`, `fix: …`, `feat!: …`); it becomes the commit on main. `chore(release)` only from release-bot's `release` branch. Required to merge (`Pull request / title`). - **`.gitea/default_merge_message/SQUASH_TEMPLATE.md`**: the squash commit is `<PR title> (#<n>)` plus the description. - **`.gitea/workflows/release.yml`**, on every push to main, as release-bot (`RELEASE_TOKEN`): - if the commit is a merged `chore(release): vX.Y.Z`: tag it vX.Y.Z (lightweight), push the tag (CI builds the image, Komodo deploys prod), publish the release with git-cliff's notes; - otherwise, if anything releasable landed since the last tag: rewrite the `release` branch (CHANGELOG.md) and open or update `chore(release): vX.Y.Z`. - **`cliff.toml`** (git-cliff 2.14.2, pinned by sha512): feat → minor, fix/perf/revert → patch, breaking → minor while 0.x; chore/ci/docs/test/style/build/refactor alone don't release. Only conventional commits count, so the history before this is left out. - **`CHANGELOG.md`**: header only; release PRs fill it. - Agent notes (CLAUDE.md / AGENTS.md): the PR flow and title format; never tag by hand. After merging, `Release` runs on main and should report nothing to release (this PR is `ci:`); the first `feat:`/`fix:` PR merged after it opens the first release PR. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
dhkatz added 1 commit 2026-11-03 08:37:17 +00:00
ci: release pull requests, and conventional-commit PR titles
CI / build (pull_request) Successful in 12s
CI / image (pull_request) Skipped
Pull request / title (pull_request) Successful in 1s
814b00f82b
Pull requests only, squash-merged, titled as conventional commits (checked); release-bot keeps a
chore(release) pull request open, worked out by git-cliff, and merging it tags the release.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
dhkatz merged commit fbf1e01314 into main 2026-11-03 08:40:38 +00:00
dhkatz deleted branch release-prs 2026-11-03 08:40:38 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: t5de/t5de-catalog#1