@@ -52,17 +52,23 @@ jobs:
5252 - name : Build
5353 run : pnpm turbo build
5454
55+ - name : Build linux-x64 binary via Docker
56+ run : |
57+ cd crates/v8-runtime
58+ docker build -f docker/Dockerfile.linux-x64-gnu -o type=local,dest=npm/linux-x64-gnu .
59+
5560 - name : Publish to npm
5661 run : |
5762 FAILURES=""
63+
64+ # Publish workspace packages
5865 for dir in $(pnpm -r ls --json --depth -1 | jq -r '.[] | select(.private != true) | .path'); do
5966 # Skip the root package
6067 if [ "$dir" = "$(pwd)" ]; then
6168 continue
6269 fi
6370 NAME=$(jq -r .name "$dir/package.json")
6471 VERSION="${{ inputs.version }}"
65- # Skip if already published
6672 if npm view "${NAME}@${VERSION}" version >/dev/null 2>&1; then
6773 echo "⏭ ${NAME}@${VERSION} already published, skipping."
6874 continue
7278 FAILURES="${FAILURES} ${NAME}"
7379 fi
7480 done
81+
82+ # Publish v8 platform packages (not in pnpm workspace)
83+ for dir in crates/v8-runtime/npm/*/; do
84+ if [ ! -f "$dir/package.json" ]; then
85+ continue
86+ fi
87+ NAME=$(jq -r .name "$dir/package.json")
88+ VERSION="${{ inputs.version }}"
89+ if npm view "${NAME}@${VERSION}" version >/dev/null 2>&1; then
90+ echo "⏭ ${NAME}@${VERSION} already published, skipping."
91+ continue
92+ fi
93+ echo "Publishing ${NAME}@${VERSION}..."
94+ if ! (cd "$dir" && npm publish --access public --tag ${{ inputs.npm-tag }}); then
95+ FAILURES="${FAILURES} ${NAME}"
96+ fi
97+ done
98+
7599 if [ -n "$FAILURES" ]; then
76100 echo "::error::Failed to publish:${FAILURES}"
77101 exit 1
0 commit comments