5151 echo "publish_to_npm=${PUBLISH_TO_NPM}" >> "$GITHUB_OUTPUT"
5252
5353 wasm-sdk :
54- name : Build WASM SDK and publish npm
54+ name : Build WASM SDK package
5555 runs-on : ubuntu-latest
5656 timeout-minutes : 45
5757 needs : resolve-version
@@ -71,19 +71,13 @@ jobs:
7171 run : rustup target add wasm32-unknown-unknown
7272
7373 - name : Install wasm-pack
74- run : cargo install wasm-pack@ 0.14.0
74+ run : cargo install wasm-pack --version 0.14.0 --locked
7575
7676 - name : Build WASM package
7777 run : |
7878 cd bindings/wasm-sdk
7979 wasm-pack build --target web --release --out-dir pkg
8080
81- - name : Setup Node.js
82- uses : actions/setup-node@v4
83- with :
84- node-version : " 20"
85- registry-url : " https://registry.npmjs.org"
86-
8781 - name : Set WASM package version and metadata
8882 working-directory : bindings/wasm-sdk/pkg
8983 run : |
@@ -102,13 +96,6 @@ jobs:
10296 - name : Copy README into package
10397 run : cp bindings/wasm-sdk/README.md bindings/wasm-sdk/pkg/README.md
10498
105- - name : Publish WASM package to npm
106- if : needs.resolve-version.outputs.publish_to_npm == 'true'
107- working-directory : bindings/wasm-sdk/pkg
108- run : npm publish --access public
109- env :
110- NODE_AUTH_TOKEN : ${{ secrets.NPM_TOKEN }}
111-
11299 - name : Package WASM release artifact
113100 run : |
114101 VERSION="${{ needs.resolve-version.outputs.version }}"
@@ -336,10 +323,51 @@ jobs:
336323 if-no-files-found : error
337324 path : release/rgb-lightning-node-swift-${{ needs.resolve-version.outputs.version }}.zip
338325
326+ npm-wasm :
327+ name : Publish WASM package to npm
328+ runs-on : ubuntu-latest
329+ needs : [resolve-version, kotlin-android, swift-ios, wasm-sdk]
330+ steps :
331+ - name : Download WASM artifact
332+ uses : actions/download-artifact@v4
333+ with :
334+ name : wasm-sdk-release
335+ path : release-assets
336+
337+ - name : Extract WASM package
338+ run : |
339+ set -euo pipefail
340+ shopt -s nullglob
341+ tarballs=(release-assets/*.tar.gz)
342+ if [ "${#tarballs[@]}" -ne 1 ]; then
343+ echo "Expected exactly one tarball in release-assets, got ${#tarballs[@]}"
344+ ls -la release-assets
345+ exit 1
346+ fi
347+ tar -xzf "${tarballs[0]}" -C release-assets
348+
349+ - name : Setup Node.js
350+ if : needs.resolve-version.outputs.publish_to_npm == 'true'
351+ uses : actions/setup-node@v4
352+ with :
353+ node-version : " 20"
354+ registry-url : " https://registry.npmjs.org"
355+
356+ - name : Publish WASM package to npm
357+ if : needs.resolve-version.outputs.publish_to_npm == 'true'
358+ working-directory : release-assets/pkg
359+ run : npm publish --access public
360+ env :
361+ NODE_AUTH_TOKEN : ${{ secrets.NPM_TOKEN }}
362+
363+ - name : Skip npm publish
364+ if : needs.resolve-version.outputs.publish_to_npm != 'true'
365+ run : echo "publish_to_npm=false, skipping npm publish"
366+
339367 github-release :
340368 name : Publish GitHub release
341369 runs-on : ubuntu-latest
342- needs : [resolve-version, kotlin-android, swift-ios, wasm-sdk]
370+ needs : [resolve-version, kotlin-android, swift-ios, wasm-sdk, npm-wasm ]
343371 steps :
344372 - name : Download release artifacts
345373 uses : actions/download-artifact@v4
0 commit comments