Skip to content

Commit 433fa84

Browse files
author
iexitdev
committed
ci(release): verify npm registry before prerelease
1 parent 4536365 commit 433fa84

3 files changed

Lines changed: 5 additions & 1 deletion

File tree

.github/workflows/publish.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,9 @@ jobs:
151151
env:
152152
NPM_TAG: ${{ steps.package.outputs.npm_tag }}
153153

154+
- name: Verify npm registry publish state
155+
run: npm run release:publish:status -- --strict
156+
154157
- name: Create GitHub release
155158
env:
156159
GH_TOKEN: ${{ github.token }}

docs/release/beta-checklist.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ The `test:e2e` command covers web showcase interaction flows. The example comman
4848

4949
The `docs:build` command validates local links, balanced code fences, JS/TS markdown fence syntax, and public TS/TSX docs examples. Integrated docs example coverage still runs through `npm run rn:typecheck`.
5050

51-
The `pack:check` command runs `npm pack --dry-run --json --ignore-scripts` for every package in the release package manifest, using a repo-local temp npm cache. It verifies package names, package metadata, README files, built `dist` entrypoints, and the modern `pro-preview` subpath artifacts. The publish workflow reads the same manifest for the Developer Preview publish list so preview-only packages cannot be published by an unrelated hardcoded loop. Keep dependency packages before the root compatibility package in the manifest so scoped package access failures happen before the root package is published.
51+
The `pack:check` command runs `npm pack --dry-run --json --ignore-scripts` for every package in the release package manifest, using a repo-local temp npm cache. It verifies package names, package metadata, README files, built `dist` entrypoints, and the modern `pro-preview` subpath artifacts. The publish workflow reads the same manifest for the Developer Preview publish list so preview-only packages cannot be published by an unrelated hardcoded loop. Keep dependency packages before the root compatibility package in the manifest so scoped package access failures happen before the root package is published. After publishing, the workflow runs `npm run release:publish:status -- --strict` and only creates the GitHub prerelease if the npm registry shows the publishable packages under `next` and the preview-only packages unpublished.
5252

5353
Use `npm run release:qa:record -- --matrix runtime --list` to inspect native QA matrix rows, and add `--details` to print the required checks for each row. Use the same command with `--row`, `--status`, and `--evidence` after a manual device pass. Use `--matrix skia` for Skia renderer install, parity, and performance evidence. The recorder rejects `pass` rows without evidence links or missing repo-relative evidence files and regenerates [native QA checklist](native-qa-checklists.md).
5454

scripts/check-release-gates.mjs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -517,6 +517,7 @@ const publishWorkflowSafetyChecks = [
517517
"npm whoami",
518518
"npm access list packages @chart-kit --json",
519519
"scripts/list-release-packages.mjs --publishable",
520+
"npm run release:publish:status -- --strict",
520521
"npm publish \"${PUBLISH_TARGET}\" --ignore-scripts --access public --provenance --tag"
521522
].filter((needle) => !publishWorkflowSource.includes(needle));
522523

0 commit comments

Comments
 (0)