Skip to content

Commit 5e83032

Browse files
committed
docs: document CI/CD workflow structure and rationale
1 parent 30afaa6 commit 5e83032

1 file changed

Lines changed: 12 additions & 0 deletions

File tree

AGENTS.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -180,6 +180,18 @@ This project uses [Conventional Commits](https://www.conventionalcommits.org/) a
180180

181181
**Important:** Use `chore` (not `fix` or `feat`) for CI, build, or tooling changes that don't affect the published library. For example, use `chore(ci): fix workflow` instead of `fix(ci): fix workflow`. Using `fix` or `feat` for CI-only changes will trigger an unnecessary version bump and release.
182182

183+
## CI/CD
184+
185+
The project uses a single GitHub Actions workflow (`main.yml`) with three jobs:
186+
187+
1. **check** — lint, format check, tests
188+
2. **build** — verifies the build succeeds (depends on check)
189+
3. **release** — version bump, changelog, npm publish, GitHub Release (depends on build, only on push to main)
190+
191+
The `build` job does not verify the build on PRs — only the `release` job builds before publishing. The separate `build` job exists as an early CI gate so build failures are caught before the release job runs. The release job builds again from scratch because GitHub Actions jobs don't share artifacts between runners.
192+
193+
`npm publish` uses `--ignore-scripts` to avoid double-building (the release job already ran `build:only` before publishing, so `prepack` is unnecessary).
194+
183195
## Environment
184196

185197
- Node.js 25+ (see `.nvmrc`)

0 commit comments

Comments
 (0)