6262 uses : ./.github/workflows/actions/sign-files
6363 with :
6464 paths : |
65- ./src /target/release/packager/*.exe
66- ./src /target/release/packager/*.msi
65+ ./ggsql-cli /target/release/packager/*.exe
66+ ./ggsql-cli /target/release/packager/*.msi
6767 env :
6868 # environment variables required to sign with signtool
6969 SM_HOST : ${{ secrets.SM_HOST }}
@@ -76,14 +76,14 @@ jobs:
7676 uses : actions/upload-artifact@v4
7777 with :
7878 name : ggsql-windows-nsis
79- path : src /target/release/packager/*.exe
79+ path : ggsql-cli /target/release/packager/*.exe
8080 retention-days : 30
8181
8282 - name : Upload MSI installer
8383 uses : actions/upload-artifact@v4
8484 with :
8585 name : ggsql-windows-msi
86- path : src /target/release/packager/*.msi
86+ path : ggsql-cli /target/release/packager/*.msi
8787 retention-days : 30
8888
8989 build-macos-x86_64 :
@@ -162,10 +162,10 @@ jobs:
162162 xargs -0 -I{} codesign --force --options runtime --timestamp --sign "$SIGN_ID" "{}"
163163 # Then sign the executables with hardened runtime + entitlements
164164 codesign --force --options runtime --timestamp \
165- --entitlements src/ entitlements.plist \
165+ --entitlements entitlements.plist \
166166 --sign "$SIGN_ID" target/release/ggsql
167167 codesign --force --options runtime --timestamp \
168- --entitlements src/ entitlements.plist \
168+ --entitlements entitlements.plist \
169169 --sign "$SIGN_ID" target/release/ggsql-jupyter
170170
171171 - name : Build and notarize PKG installer (x86_64)
@@ -285,10 +285,10 @@ jobs:
285285 xargs -0 -I{} codesign --force --options runtime --timestamp --sign "$SIGN_ID" "{}"
286286 # Then sign the executables with hardened runtime + entitlements
287287 codesign --force --options runtime --timestamp \
288- --entitlements src/ entitlements.plist \
288+ --entitlements entitlements.plist \
289289 --sign "$SIGN_ID" target/release/ggsql
290290 codesign --force --options runtime --timestamp \
291- --entitlements src/ entitlements.plist \
291+ --entitlements entitlements.plist \
292292 --sign "$SIGN_ID" target/release/ggsql-jupyter
293293
294294 - name : Build and notarize PKG installer (aarch64)
@@ -377,7 +377,7 @@ jobs:
377377 uses : actions/upload-artifact@v4
378378 with :
379379 name : ggsql-linux-deb-x86_64
380- path : src /target/release/packager/*.deb
380+ path : ggsql-cli /target/release/packager/*.deb
381381 retention-days : 30
382382
383383 build-linux-aarch64 :
@@ -428,7 +428,7 @@ jobs:
428428 uses : actions/upload-artifact@v4
429429 with :
430430 name : ggsql-linux-deb-aarch64
431- path : src /target/release/packager/*.deb
431+ path : ggsql-cli /target/release/packager/*.deb
432432 retention-days : 30
433433
434434 build-cargo :
@@ -485,9 +485,95 @@ jobs:
485485 env :
486486 CARGO_REGISTRY_TOKEN : ${{ steps.auth.outputs.token }}
487487
488+ - name : Publish ggsql-cli
489+ run : cargo publish --package ggsql-cli
490+ env :
491+ CARGO_REGISTRY_TOKEN : ${{ steps.auth.outputs.token }}
492+
493+ build-wasm :
494+ name : Build Wasm Package (wasm32)
495+ runs-on : ubuntu-latest
496+ environment : npm
497+ permissions :
498+ id-token : write
499+ contents : read
500+
501+ steps :
502+ - name : Checkout code
503+ uses : actions/checkout@v4
504+
505+ - name : Increase disk space
506+ run : |
507+ sudo rm -rf /usr/share/dotnet /usr/local/lib/android /opt/ghc /opt/hostedtoolcache/CodeQL
508+ sudo docker image prune --all --force
509+ sudo docker builder prune -a
510+
511+ - name : Install Node.js
512+ uses : actions/setup-node@v4
513+ with :
514+ node-version : " 22"
515+ registry-url : " https://registry.npmjs.org"
516+
517+ - name : Install tree-sitter-cli
518+ run : npm install -g tree-sitter-cli
519+
520+ - name : Install Rust toolchain
521+ uses : dtolnay/rust-toolchain@stable
522+
523+ - name : Install LLVM
524+ run : sudo apt-get install -y llvm
525+
526+ - name : Install wasm-pack
527+ run : cargo install wasm-pack
528+
529+ - name : Install wasm-opt
530+ run : cargo install wasm-opt
531+
532+ - name : Build WASM library
533+ working-directory : ggsql-wasm/library
534+ run : npm install && npm run build
535+
536+ - name : Build WASM package
537+ working-directory : ggsql-wasm
538+ run : wasm-pack build --target web --profile wasm --no-opt
539+
540+ - name : Optimise WASM binary
541+ working-directory : ggsql-wasm
542+ run : wasm-opt pkg/ggsql_wasm_bg.wasm -o pkg/ggsql_wasm_bg.wasm -Oz --all-features
543+
544+ - name : Create npm tarball
545+ working-directory : ggsql-wasm/pkg
546+ run : npm pack
547+
548+ - name : Upload npm tarball
549+ uses : actions/upload-artifact@v4
550+ with :
551+ name : ggsql-wasm-npm
552+ path : ggsql-wasm/pkg/*.tgz
553+ retention-days : 30
554+
555+ - name : Update npm for OIDC support
556+ if : startsWith(github.ref, 'refs/tags/v')
557+ run : npm install -g npm@latest
558+
559+ - name : Determine npm dist-tag
560+ if : startsWith(github.ref, 'refs/tags/v')
561+ id : dist-tag
562+ run : |
563+ if [[ "$GITHUB_REF_NAME" == *"-dev"* || "$GITHUB_REF_NAME" == *"-rc"* ]]; then
564+ echo "tag=next" >> "$GITHUB_OUTPUT"
565+ else
566+ echo "tag=latest" >> "$GITHUB_OUTPUT"
567+ fi
568+
569+ - name : Publish to npm
570+ if : startsWith(github.ref, 'refs/tags/v')
571+ working-directory : ggsql-wasm/pkg
572+ run : npm publish --access=public --provenance --tag ${{ steps.dist-tag.outputs.tag }}
573+
488574 create-release :
489575 name : Create GitHub Release
490- needs : [build-windows, build-macos-x86_64, build-macos-aarch64, build-linux-x86_64, build-linux-aarch64, build-cargo]
576+ needs : [build-windows, build-macos-x86_64, build-macos-aarch64, build-linux-x86_64, build-linux-aarch64, build-cargo, build-wasm ]
491577 runs-on : ubuntu-latest
492578 permissions :
493579 contents : write
@@ -510,5 +596,6 @@ jobs:
510596 artifacts/**/*.msi
511597 artifacts/**/*.pkg
512598 artifacts/**/*.deb
599+ artifacts/**/*.tgz
513600 env :
514601 GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
0 commit comments