Commit Graph
5 Commits
Author SHA1 Message Date
dhkatz fbf1e01314 ci: release pull requests, and conventional-commit PR titles (#1)
CI / build (push) Successful in 9s
Release / release (push) Successful in 2s
CI / image (push) Successful in 21s
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)

Reviewed-on: #1
Co-authored-by: dhkatz <[email protected]>
2026-11-03 08:40:38 +00:00
dhkatzandClaude Opus 5.5 f60ba346f8 CI builds and pushes the images; Komodo only deploys
CI / build (push) Successful in 8s
CI / image (push) Successful in 22s
After the tests pass, main pushes :latest-main and :main-<commit>, and vX.Y.Z tags push :X.Y.Z, :X.Y and
:latest to git.t5de.dev (registry login: the t5de org secret REGISTRY_TOKEN). Komodo deploys them once the
ref's CI has passed; it no longer builds.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-31 15:53:10 +00:00
dhkatzandClaude Opus 5.5 576b26cf81 CI only tests again: Komodo builds and deploys
CI / build (push) Successful in 21s
Komodo now watches the t5de org (Gitea webhook → its t5de-push action, defined in t5de-infra): it builds and
deploys a commit to staging once this CI passes on main, and to prod for vX.Y.Z tags. So the deploy job and
.gitea/scripts/deploy.py go, and this repo no longer needs to know how it's deployed.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 15:47:58 +00:00
dhkatzandClaude Opus 5.5 715c0bd0d7 Deploy with Komodo: main to staging, vX.Y.Z to prod
CI / build (push) Successful in 14s
CI / deploy (push) Successful in 37s
CI now pushes the Docker image to git.t5de.dev after the tests and deploys it through Komodo
(.gitea/scripts/deploy.py): pushes to main as :main to catalog.staging.t5de.dev, vX.Y.Z tags as :X.Y.Z to
catalog.t5de.dev, with the version pinned in t5de/t5de-infra.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-30 08:09:15 -07:00
dhkatzandClaude Opus 5.5 8742829e77 t5de-catalog: store and serve community product files
CI / build (push) Successful in 54s
A Go server that takes product uploads with hub upload tokens, checks them by
t5de-api's pack rules, stores files by sha256, registers revisions with the hub
(POST /api/v1/catalog/revisions), and serves files with immutable caching;
files used only by adult revisions need an adult access token. Contract:
t5de-hub's docs/products.md.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-29 18:59:16 -07:00