ci: add npm release workflow and CalVer checks#42414
Conversation
Greptile SummaryThis PR adds a
Confidence Score: 5/5
Last reviewed commit: efdf1cd |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 0ca656c4e8
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
1ebee78 to
849c367
Compare
* fix(ci): stop serializing push workflow runs (cherry picked from commit 0a20c5c) * test: harden path resolution test helpers (cherry picked from commit 1ad47b8) * Fix launcher startup regressions (openclaw#48501) * Fix launcher startup regressions * Fix CI follow-up regressions * Fix review follow-ups * Fix workflow audit shell inputs * Handle require resolve gaxios misses (cherry picked from commit 313e5bb) * refactor(scripts): move container setup entrypoints (cherry picked from commit 46ccbac) * perf(ci): gate install smoke on changed-smoke (openclaw#52458) (cherry picked from commit 4bd90f2) * Docs: prototype generated plugin SDK reference (openclaw#51877) * Chore: unblock synced main checks * Docs: add plugin SDK docs implementation plan * Docs: scaffold plugin SDK reference phase 1 * Docs: mark plugin SDK reference surfaces unstable * Docs: prototype generated plugin SDK reference * docs(plugin-sdk): replace generated reference with api baseline * docs(plugin-sdk): drop generated reference plan * docs(plugin-sdk): align api baseline flow with config docs --------- Co-authored-by: Onur <[email protected]> Co-authored-by: Vincent Koc <[email protected]> (cherry picked from commit 4f1e12a) * fix(ci): harden docker builds and unblock config docs (cherry picked from commit 9f08af1) * Docs: add config drift baseline statefile (openclaw#45891) * Docs: add config drift statefile generator * Docs: generate config drift baseline * CI: move config docs drift runner into workflow sanity * Docs: emit config drift baseline json * Docs: commit config drift baseline json * Docs: wire config baseline into release checks * Config: fix baseline drift walker coverage * Docs: regenerate config drift baselines (cherry picked from commit cbec476) * Release: add plugin npm publish workflow (openclaw#47678) * Release: add plugin npm publish workflow * Release: make plugin publish scope explicit (cherry picked from commit d41c9ad) * build: default to Node 24 and keep Node 22 compat (cherry picked from commit deada7e) * ci(android): use explicit flavor debug tasks (cherry picked from commit 0c2e6fe) * ci: harden pnpm sticky cache on PRs (cherry picked from commit 29b36f8) * CI: add built plugin singleton smoke (openclaw#48710) (cherry picked from commit 5a2a4ab) * chore: add code owners for npm release paths (cherry picked from commit 5c9fae5) * test add extension plugin sdk boundary guards (cherry picked from commit 77fb258) * ci: tighten cache docs and node22 gate (cherry picked from commit 797b6fe) * ci: add npm release workflow and CalVer checks (openclaw#42414) (thanks @onutc) (cherry picked from commit 8ba1b6e) * CI: add CLI startup memory regression check (cherry picked from commit c0e0115) * Add bad-barnacle label to prevent barnacle closures. (openclaw#51945) (cherry picked from commit c449a0a) * ci: speed up scoped workflow lanes (cherry picked from commit d17490f) * ci: restore PR pnpm cache fallback (cherry picked from commit e1d0545) * CI: guard gateway watch against duplicate runtime regressions (openclaw#49048) (cherry picked from commit f036ed2) * fix: correct domain reference in docker setup script * fix: adapt cherry-picks for fork TS strictness * fix: adapt cherry-picked tests for fork structure - Dockerfile test: OPENCLAW_ → REMOTECLAW_ ARG names - ci-changed-scope test: add missing runChangedSmoke field - doc-baseline test: rename to e2e (needs dist/ build artifacts) - extension boundary test: update baselines and expectations for fork * fix: adjust ci-changed-scope test for fork's narrower skills regex --------- Co-authored-by: Vincent Koc <[email protected]> Co-authored-by: Peter Steinberger <[email protected]> Co-authored-by: Tak Hoffman <[email protected]> Co-authored-by: Bob <[email protected]> Co-authored-by: Onur <[email protected]> Co-authored-by: Altay <[email protected]> Co-authored-by: Ayaan Zaidi <[email protected]> Co-authored-by: Onur Solmaz <[email protected]> Co-authored-by: Harold Hunt <[email protected]>
Summary
~/offline/acpx, added a dedicated release-publish validation script plus tests, and updated the release checklist to document the automated publish path and the enforced versioning rules.Change Type (select all)
Scope (select all touched areas)
Linked Issue/PR
User-visible / Behavior Changes
vYYYY.M.DorvYYYY.M.D-beta.Ntag now triggers npm publishing from GitHub Actions.betadist-tag; stable versions publish with the defaultlatestpath.package.json, are not onmain, or if the CalVer date is more than 2 UTC calendar days away from the actual release date.Security Impact (required)
YesNoYesNoNoYes, explain risk + mitigation:The workflow adds npm trusted publishing from GitHub Actions using
id-token: writeon the release job. Risk is limited to tag-triggered publishes, and the workflow gates publication on package metadata validation, exact tag/version match,mainancestry, unpublished-version checks, and the CalVer date window.Repro + Verification
Environment
2026.3.9Steps
.github/workflows/release.yml.scripts/release-publish-check.tsandtest/release-publish-check.test.ts.Expected
maintags, duplicate npm versions, and stale CalVer dates are rejected before publish.npm publishhappy path.Actual
Evidence
Attach at least one:
Evidence:
pnpm exec vitest run test/release-publish-check.test.tsRELEASE_TAG=v2026.3.9 RELEASE_SHA=$(git rev-parse origin/main) RELEASE_MAIN_REF=origin/main pnpm release:publish:checkpnpm checkHuman Verification (required)
What you personally verified (not just CI), and how:
package.jsonormainancestry.Review Conversations
Compatibility / Migration
YesNoNoFailure Recovery (if this breaks)
.github/workflows/release.yml,scripts/release-publish-check.ts,package.json,docs/reference/RELEASING.mdRisks and Mitigations
betavslatestdirectly from the validated version string and blocks legacy tag formats.