Commit 3068222
ci: publish on a version tag, with provenance
threadkit has a CI workflow but no way to ship. The package is publish-ready —
name unclaimed on npm, `files: ["dist"]`, README and LICENSE both in the
tarball, 27 files, builds clean — so the only thing standing between it and a
release was a manual `npm publish` from someone's laptop.
This is the same workflow ai-forms already carries, so the two libraries
release identically rather than each growing its own procedure:
- triggered by a `v*` tag, so every published artifact traces to a commit
- `id-token: write` for npm provenance — the registry can prove the tarball
was built by this workflow from this commit, not uploaded from a laptop
- runs `npm run verify` first: never publish something that would not pass CI
- refuses to publish when the tag and package.json version disagree, instead
of silently shipping the wrong number
Verified locally with the workflow's exact steps: `npm ci --ignore-scripts`
then `npm run verify` — 31 tests pass.
Needs the NPM_TOKEN repo secret once; after that a release is `npm version`
plus a tag push.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>1 parent 82723a5 commit 3068222
1 file changed
Lines changed: 42 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
0 commit comments