node: opt-in publishing on release tags (Gitea npm registry, Gitea release) #6

Merged
james.maes merged 1 commits from ci/node-publish into main 2026-11-08 13:26:05 +00:00
Owner

Owner decision 2026-11-08 (Q2): npm packages publish to the Gitea npm registry on release tags.

  • publish: true (default false). Branches and non-release tags still only verify.
  • A tag vX.Y.Z or vX.Y.Z-<pre> must equal version-file (default package.json) or the build fails before install.
  • After all commands pass: npm-publish-dirs (default ., in order) or publish-commands go to https://git.kof22.com/api/packages/<owner>/npm/ with PACKAGES_TOKEN via a throwaway userconfig; prerelease -> dist-tag next, final -> latest; publishConfig.registry is ignored for the publish; each publish is confirmed with npm view.
  • release-files (optional): Gitea release for the tag (prerelease for -<pre>), fresh SHA256SUMS (an existing one is checked first), notes = the CHANGELOG section naming the version. Fails if a release already exists.
  • Workflow permission becomes contents: write (release creation), matching maven.yaml.

Proof plan: callers on @main (qqq-frontend-core, qqq-frontend-component-sequential-workflow, qqq-print-protocol) with RC tags, then the owner moves v1.

🤖 Generated with Claude Code

Owner decision 2026-11-08 (Q2): npm packages publish to the Gitea npm registry on release tags. - `publish: true` (default false). Branches and non-release tags still only verify. - A tag `vX.Y.Z` or `vX.Y.Z-<pre>` must equal `version-file` (default `package.json`) or the build fails before install. - After all commands pass: `npm-publish-dirs` (default `.`, in order) or `publish-commands` go to `https://git.kof22.com/api/packages/<owner>/npm/` with `PACKAGES_TOKEN` via a throwaway userconfig; prerelease -> dist-tag `next`, final -> `latest`; `publishConfig.registry` is ignored for the publish; each publish is confirmed with `npm view`. - `release-files` (optional): Gitea release for the tag (prerelease for `-<pre>`), fresh `SHA256SUMS` (an existing one is checked first), notes = the CHANGELOG section naming the version. Fails if a release already exists. - Workflow permission becomes `contents: write` (release creation), matching maven.yaml. Proof plan: callers on `@main` (qqq-frontend-core, qqq-frontend-component-sequential-workflow, qqq-print-protocol) with RC tags, then the owner moves `v1`. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
james.maes added 1 commit 2026-11-08 13:25:54 +00:00
publish: true makes a vX.Y.Z[-pre] tag whose version equals version-file
publish after the commands pass: npm-publish-dirs (or publish-commands) to the
owner's Gitea npm registry with PACKAGES_TOKEN (prerelease -> dist-tag next),
and release-files to a Gitea release with SHA256SUMS and the CHANGELOG section
as notes. Branches and other tags only verify.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
james.maes merged commit bbc8fd9c5b into main 2026-11-08 13:26:05 +00:00
james.maes deleted branch ci/node-publish 2026-11-08 13:26:05 +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: KofTwentyTwo/ci-workflows#6