From c53084ba505ace0006b8d61c7befdea36f3ba8b2 Mon Sep 17 00:00:00 2001 From: George Stagg Date: Fri, 24 Apr 2026 11:59:09 +0100 Subject: [PATCH 1/3] Publish wasm binary and package to npm and GitHub releases --- .github/workflows/release-packages.yml | 81 +++++++++++++++++++++++++- 1 file changed, 80 insertions(+), 1 deletion(-) diff --git a/.github/workflows/release-packages.yml b/.github/workflows/release-packages.yml index 8ef9c870..602b3276 100644 --- a/.github/workflows/release-packages.yml +++ b/.github/workflows/release-packages.yml @@ -485,9 +485,87 @@ jobs: env: CARGO_REGISTRY_TOKEN: ${{ steps.auth.outputs.token }} + build-wasm: + name: Build and Publish WASM Package + runs-on: ubuntu-latest + environment: npm + permissions: + id-token: write + contents: read + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Increase disk space + run: | + sudo rm -rf /usr/share/dotnet /usr/local/lib/android /opt/ghc /opt/hostedtoolcache/CodeQL + sudo docker image prune --all --force + sudo docker builder prune -a + + - name: Install Node.js + uses: actions/setup-node@v4 + with: + node-version: "22" + registry-url: "https://registry.npmjs.org" + + - name: Install tree-sitter-cli + run: npm install -g tree-sitter-cli + + - name: Install Rust toolchain + uses: dtolnay/rust-toolchain@stable + + - name: Install wasm-pack + run: cargo install wasm-pack + + - name: Install wasm-opt + run: cargo install wasm-opt + + - name: Build WASM library + working-directory: ggsql-wasm/library + run: npm install && npm run build + + - name: Build WASM package + working-directory: ggsql-wasm + run: wasm-pack build --target web --profile wasm --no-opt + + - name: Optimise WASM binary + working-directory: ggsql-wasm + run: wasm-opt pkg/ggsql_wasm_bg.wasm -o pkg/ggsql_wasm_bg.wasm -Oz --all-features + + - name: Create npm tarball + working-directory: ggsql-wasm/pkg + run: npm pack + + - name: Upload npm tarball + uses: actions/upload-artifact@v4 + with: + name: ggsql-wasm-npm + path: ggsql-wasm/pkg/*.tgz + retention-days: 30 + + - name: Update npm for OIDC support + if: startsWith(github.ref, 'refs/tags/v') + run: npm install -g npm@latest + + - name: Determine npm dist-tag + if: startsWith(github.ref, 'refs/tags/v') + id: dist-tag + run: | + if [[ "$GITHUB_REF_NAME" == *"-dev"* || "$GITHUB_REF_NAME" == *"-rc"* ]]; then + echo "tag=next" >> "$GITHUB_OUTPUT" + else + echo "tag=latest" >> "$GITHUB_OUTPUT" + fi + + - name: Publish to npm + if: startsWith(github.ref, 'refs/tags/v') + working-directory: ggsql-wasm/pkg + run: npm publish --access=public --provenance --tag ${{ steps.dist-tag.outputs.tag }} + create-release: name: Create GitHub Release - needs: [build-windows, build-macos-x86_64, build-macos-aarch64, build-linux-x86_64, build-linux-aarch64, build-cargo] + needs: [build-windows, build-macos-x86_64, build-macos-aarch64, build-linux-x86_64, build-linux-aarch64, build-cargo, build-wasm] runs-on: ubuntu-latest permissions: contents: write @@ -510,5 +588,6 @@ jobs: artifacts/**/*.msi artifacts/**/*.pkg artifacts/**/*.deb + artifacts/**/*.tgz env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} From 64d477c5c38159082a8876a5487f2cd27c69407f Mon Sep 17 00:00:00 2001 From: George Stagg Date: Fri, 24 Apr 2026 12:46:29 +0100 Subject: [PATCH 2/3] Install LLVM when building Wasm package --- .github/workflows/release-packages.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/release-packages.yml b/.github/workflows/release-packages.yml index 602b3276..1faf5c80 100644 --- a/.github/workflows/release-packages.yml +++ b/.github/workflows/release-packages.yml @@ -486,7 +486,7 @@ jobs: CARGO_REGISTRY_TOKEN: ${{ steps.auth.outputs.token }} build-wasm: - name: Build and Publish WASM Package + name: Build Wasm Package (wasm32-unknown-unknown) runs-on: ubuntu-latest environment: npm permissions: @@ -515,6 +515,9 @@ jobs: - name: Install Rust toolchain uses: dtolnay/rust-toolchain@stable + - name: Install LLVM + run: sudo apt-get install -y llvm + - name: Install wasm-pack run: cargo install wasm-pack From e9d5e548a64ba5b9863d1bc28f739b4a081b093f Mon Sep 17 00:00:00 2001 From: George Stagg Date: Fri, 24 Apr 2026 12:48:11 +0100 Subject: [PATCH 3/3] Reanme workflow step --- .github/workflows/release-packages.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release-packages.yml b/.github/workflows/release-packages.yml index 1faf5c80..fe1ffbae 100644 --- a/.github/workflows/release-packages.yml +++ b/.github/workflows/release-packages.yml @@ -486,7 +486,7 @@ jobs: CARGO_REGISTRY_TOKEN: ${{ steps.auth.outputs.token }} build-wasm: - name: Build Wasm Package (wasm32-unknown-unknown) + name: Build Wasm Package (wasm32) runs-on: ubuntu-latest environment: npm permissions: