From 7f2f9f44f0217570361d8a4435545de681b4abfd Mon Sep 17 00:00:00 2001 From: richerfu Date: Tue, 7 Jul 2026 20:18:42 +0800 Subject: [PATCH 1/4] ci: add npm publish ci Signed-off-by: richerfu --- .github/workflows/npm-publish.yml | 94 +++++++++++++++++++++++++++++++ packages/zig-napi/package.json | 5 +- 2 files changed, 98 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/npm-publish.yml diff --git a/.github/workflows/npm-publish.yml b/.github/workflows/npm-publish.yml new file mode 100644 index 0000000..6d76bb9 --- /dev/null +++ b/.github/workflows/npm-publish.yml @@ -0,0 +1,94 @@ +name: Publish Node CLI + +on: + push: + branches: [ main ] + +permissions: + contents: read + id-token: write + +jobs: + publish: + name: Publish zig-napi CLI + runs-on: ubuntu-latest + if: github.ref == 'refs/heads/main' && startsWith(github.event.head_commit.message, 'chore(npm): publish') + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Verify publish commit + shell: bash + env: + COMMIT_MESSAGE: ${{ github.event.head_commit.message }} + run: | + set -euo pipefail + subject="$(printf '%s' "${COMMIT_MESSAGE}" | sed -n '1p')" + if [ "${subject}" != "chore(npm): publish" ]; then + echo "Refusing to publish from commit subject: ${subject}" + exit 1 + fi + + - name: Setup Zig + uses: mlugg/setup-zig@v2 + with: + version: 0.16.0 + cache-key: npm-publish + + - name: Setup pnpm + uses: pnpm/action-setup@v4 + with: + version: 10.24.0 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: '22' + registry-url: https://registry.npmjs.org/ + cache: pnpm + + - name: Install workspace dependencies + run: pnpm install --frozen-lockfile + + - name: Build root package + run: pnpm run build + + - name: Lint + run: pnpm run lint + + - name: Format + run: pnpm run format + + - name: Check formatting + run: git diff --exit-code + + - name: Build wasm Node example + run: node packages/zig-napi/bin/zig-napi.js build --cwd examples/node --target wasm32-wasip1-threads -- --summary all + + - name: Test wasm Node example + env: + NAPI_RS_FORCE_WASI: 'error' + run: node examples/node/test.js + + - name: Build wasm node-test matrix + run: node packages/zig-napi/bin/zig-napi.js build --cwd node-test --target wasm32-wasip1-threads -- --summary all + + - name: Test wasm node-test matrix + working-directory: node-test + env: + NAPI_RS_FORCE_WASI: 'error' + run: npm run test:run + + - name: Check generated artifacts + run: git diff --exit-code + + - name: Check package contents + working-directory: packages/zig-napi + run: npm pack --dry-run + + - name: Publish to npm + working-directory: packages/zig-napi + env: + NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} + run: npm publish --provenance --access public diff --git a/packages/zig-napi/package.json b/packages/zig-napi/package.json index e6c3951..6f6f8f4 100644 --- a/packages/zig-napi/package.json +++ b/packages/zig-napi/package.json @@ -1,7 +1,6 @@ { "name": "zig-napi", "version": "0.1.0", - "private": true, "description": "CLI tools for building Node.js addons with zig-napi.", "license": "MIT", "bin": { @@ -13,6 +12,10 @@ "README.md", "LICENSE" ], + "publishConfig": { + "access": "public", + "registry": "https://registry.npmjs.org/" + }, "scripts": { "cli": "node bin/zig-napi.js" }, From 7522661c2a57f1d5d94b9d5429ea0d2e34c67ba8 Mon Sep 17 00:00:00 2001 From: richerfu Date: Tue, 7 Jul 2026 20:21:46 +0800 Subject: [PATCH 2/4] remove git diff logic --- .github/workflows/npm-publish.yml | 6 ------ 1 file changed, 6 deletions(-) diff --git a/.github/workflows/npm-publish.yml b/.github/workflows/npm-publish.yml index 6d76bb9..ec6c97d 100644 --- a/.github/workflows/npm-publish.yml +++ b/.github/workflows/npm-publish.yml @@ -60,9 +60,6 @@ jobs: - name: Format run: pnpm run format - - name: Check formatting - run: git diff --exit-code - - name: Build wasm Node example run: node packages/zig-napi/bin/zig-napi.js build --cwd examples/node --target wasm32-wasip1-threads -- --summary all @@ -80,9 +77,6 @@ jobs: NAPI_RS_FORCE_WASI: 'error' run: npm run test:run - - name: Check generated artifacts - run: git diff --exit-code - - name: Check package contents working-directory: packages/zig-napi run: npm pack --dry-run From 08249181bb74bd4069f52dde992c2f5b26b45ac2 Mon Sep 17 00:00:00 2001 From: richerfu Date: Tue, 7 Jul 2026 20:27:57 +0800 Subject: [PATCH 3/4] fix yaml format --- .github/workflows/npm-publish.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/npm-publish.yml b/.github/workflows/npm-publish.yml index ec6c97d..53796a4 100644 --- a/.github/workflows/npm-publish.yml +++ b/.github/workflows/npm-publish.yml @@ -12,7 +12,7 @@ jobs: publish: name: Publish zig-napi CLI runs-on: ubuntu-latest - if: github.ref == 'refs/heads/main' && startsWith(github.event.head_commit.message, 'chore(npm): publish') + if: "github.ref == 'refs/heads/main' && startsWith(github.event.head_commit.message, 'chore(npm): publish')" steps: - name: Checkout From 581d7f85ca451f76082d2d9188bd3dad2377bd9d Mon Sep 17 00:00:00 2001 From: richerfu Date: Thu, 9 Jul 2026 09:21:55 +0800 Subject: [PATCH 4/4] chore: 0.0.1-beta.0 --- packages/zig-napi/LICENSE | 1 + packages/zig-napi/README.md | 1 + packages/zig-napi/package.json | 4 ++-- 3 files changed, 4 insertions(+), 2 deletions(-) create mode 120000 packages/zig-napi/LICENSE create mode 120000 packages/zig-napi/README.md diff --git a/packages/zig-napi/LICENSE b/packages/zig-napi/LICENSE new file mode 120000 index 0000000..30cff74 --- /dev/null +++ b/packages/zig-napi/LICENSE @@ -0,0 +1 @@ +../../LICENSE \ No newline at end of file diff --git a/packages/zig-napi/README.md b/packages/zig-napi/README.md new file mode 120000 index 0000000..fe84005 --- /dev/null +++ b/packages/zig-napi/README.md @@ -0,0 +1 @@ +../../README.md \ No newline at end of file diff --git a/packages/zig-napi/package.json b/packages/zig-napi/package.json index 6f6f8f4..dbe0f67 100644 --- a/packages/zig-napi/package.json +++ b/packages/zig-napi/package.json @@ -1,6 +1,6 @@ { - "name": "zig-napi", - "version": "0.1.0", + "name": "@ohos-rs/zig-cli", + "version": "0.0.1-beta.0", "description": "CLI tools for building Node.js addons with zig-napi.", "license": "MIT", "bin": {