diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 0fd5f05672f..d1d31d6613f 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -73,11 +73,17 @@ jobs: run: cargo binstall wasm-bindgen-cli@0.2.99 if: ${{ steps.check-artifact.outputs.exists != 'true' }} + - name: Install Binaryen + run: | + wget https://github.com/WebAssembly/binaryen/releases/download/version_121/binaryen-version_121-x86_64-linux.tar.gz -P /tmp + tar -xzf /tmp/binaryen-version_121-x86_64-linux.tar.gz -C /tmp + sudo cp -r /tmp/binaryen-version_121/* /usr/local/ + if: ${{ steps.check-artifact.outputs.exists != 'true' }} + - name: Build packages run: yarn build env: CARGO_BUILD_PROFILE: release - if: ${{ steps.check-artifact.outputs.exists != 'true' }} - name: Set suffix diff --git a/.github/workflows/tests-build-js.yml b/.github/workflows/tests-build-js.yml index 0efd75fc7ce..3223203e297 100644 --- a/.github/workflows/tests-build-js.yml +++ b/.github/workflows/tests-build-js.yml @@ -53,6 +53,13 @@ jobs: run: cargo binstall wasm-bindgen-cli@0.2.99 if: ${{ steps.check-artifact.outputs.exists != 'true' }} + - name: Install Binaryen + run: | + wget https://github.com/WebAssembly/binaryen/releases/download/version_121/binaryen-version_121-x86_64-linux.tar.gz -P /tmp + tar -xzf /tmp/binaryen-version_121-x86_64-linux.tar.gz -C /tmp + sudo cp -r /tmp/binaryen-version_121/* /usr/local/ + if: ${{ steps.check-artifact.outputs.exists != 'true' }} + - name: Build JS packages run: yarn build if: ${{ steps.check-artifact.outputs.exists != 'true' }} diff --git a/packages/wasm-dpp/Cargo.toml b/packages/wasm-dpp/Cargo.toml index c84743b3fb4..6722ced8eba 100644 --- a/packages/wasm-dpp/Cargo.toml +++ b/packages/wasm-dpp/Cargo.toml @@ -54,6 +54,6 @@ async-trait = "0.1.59" bincode = "2.0.0-rc.3" [profile.release] lto = true -opt-level = 's' +opt-level = 'z' [package.metadata.cargo-machete] ignored = ["wasm-bindgen-futures"] diff --git a/packages/wasm-dpp/scripts/build-wasm.sh b/packages/wasm-dpp/scripts/build-wasm.sh index 0c154372bae..b7ada5425ef 100755 --- a/packages/wasm-dpp/scripts/build-wasm.sh +++ b/packages/wasm-dpp/scripts/build-wasm.sh @@ -47,8 +47,9 @@ fi # EMCC_CFLAGS="-s ERROR_ON_UNDEFINED_SYMBOLS=0 --no-entry" cargo build --target=wasm32-unknown-emscripten --release # EMCC_CFLAGS="-s ERROR_ON_UNDEFINED_SYMBOLS=0 --no-entry" wasm-bindgen --out-dir=wasm --target=web --omit-default-module-path ../../target/wasm32-unknown-emscripten/release/wasm_dpp.wasm -# TODO: Must be somehow preinstalled? -#if [ "$PROFILE" == "release" ]; then -# echo "Optimizing wasm using Binaryen" -# wasm-opt -Os "$OUTPUT_FILE" -o "$OUTPUT_FILE" -#fi +if command -v wasm-opt &> /dev/null; then + echo "Optimizing wasm using Binaryen" + wasm-opt -Oz "$OUTPUT_FILE" -o "$OUTPUT_FILE" +else + echo "wasm-opt command not found. Skipping wasm optimization." +fi