Skip to content

ci: release on push to main - #6

Merged
eumaninho54 merged 2 commits into
mainfrom
ci/release-on-push-to-main
Sep 8, 2026
Merged

eumaninho54 merged 2 commits into
mainfrom
ci/release-on-push-to-main

Conversation

@eumaninho54

Copy link
Copy Markdown
Member

What changed

The Release workflow now runs on every push to main: it plans the version from the
conventional commits since the last tag, cuts it with release-it and publishes in the same
run. The v* tag trigger stays as the manual escape hatch.

Why

The workflow only listened for v* tags, so merging a PR never reached npm — someone had to
remember to run yarn release by hand. #5 landed the card positioning fix on main and it
is still unpublished; npm serves 0.2.1 while main carries a fix.

Three details worth reviewing:

  • It cannot loop. A push made with GITHUB_TOKEN does not start another workflow run, so
    the chore: release commit and the tag the bot pushes do not re-enter.
  • The file name stays release.yml because npm's trusted publisher config points at it.
  • Only feat, fix, perf and breaking changes cut a version. A push carrying nothing
    but docs, test, chore or style skips the whole thing and rides along with the next
    release.

Two things to know before merging:

  • Merging this cuts 0.2.2 immediately, since the pending fix(overlay) is already in
    range. That is the point, but it is not a no-op.
  • It relies on main having no branch protection, which is the case today. Adding a rule
    that requires PRs would break the bot's push and need a PAT or a bypass.

How it was verified

  • The plan guard, against the real history: v0.2.1..HEAD → release, v0.2.0..v0.2.1 (only
    chore: release) → skip, v0.1.2..v0.2.0 (has feat!) → release, empty range → skip.

  • release-it --ci --dry-run resolves 0.2.1...0.2.2, writes the changelog entry for
    fix(overlay): forward card positioning data, and tags v0.2.2.

  • The workflow YAML parses and the job graph is plan → verify → publish.

  • actionlint was not run — it is not installed here.

  • yarn lint — zero errors and zero warnings

  • yarn typecheck

  • yarn test — 15 suites, 97 tests

  • Ran the example on a device or simulator — not applicable, no library code changed

If it touches the tour surface

Not applicable — this only touches CI and CONTRIBUTING.md.

  • Every view model that changed still has a test covering the new behaviour
  • Screenshots or a clip, since layout and animation do not show up in a diff

If it touches the build

The publish path changed, so this was checked:

  • yarn prepare && grep -r '@/' lib/ comes back empty — the alias must not
    reach the published package
  • yarn verify:lib — lib/ is portable

🤖 Generated with Claude Code

eumaninho54 and others added 2 commits September 7, 2026 22:00
The workflow only listened for `v*` tags, so a merged PR never reached npm.
It now plans from the conventional commits since the last tag, cuts the
version with release-it and publishes in the same run. Pushes made with
GITHUB_TOKEN do not start another run, so the tag it pushes cannot loop.

The tag trigger stays as the manual escape hatch, and the file name stays
`release.yml` because npm's trusted publisher config points at it.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@eumaninho54
eumaninho54 merged commit bf28861 into main Sep 8, 2026
6 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.

1 participant