From 577ba1f4d71d54fcf9dbb930b01d4ca1dd4e262f Mon Sep 17 00:00:00 2001 From: Alvaro Gaona Date: Sun, 9 Aug 2026 03:05:42 +0200 Subject: [PATCH] ci: use the shared build-wasm action Replaces the wasm-bindgen chain in both wasm jobs with rewire-run/actions/build-wasm@v1, and migrates the release job's toolchain and cache to setup-rust while it is being touched. The two copies had already drifted: ci installed no binaryen and never optimized, release did both. That difference is now the optimize input rather than two separately maintained step lists. Behaviour is unchanged. Same wasm-bindgen 0.2.117, same binaryen version_130, same --no-default-features, same web/ output directory, and the release job keeps its release profile and wasm-opt -Oz pass. --- .github/workflows/ci.yaml | 16 ++------------- .github/workflows/release.yaml | 36 ++++++---------------------------- 2 files changed, 8 insertions(+), 44 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 8d6eade..53f507c 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -52,18 +52,6 @@ jobs: with: targets: wasm32-unknown-unknown cache-key: wasm32 - - name: Install wasm-bindgen - uses: taiki-e/install-action@v2 + - uses: rewire-run/actions/build-wasm@v1 with: - tool: wasm-bindgen-cli@0.2.117 - - name: Install LLVM tools - run: sudo apt-get update && sudo apt-get install -y llvm clang - - name: Build WASM - env: - AR_wasm32_unknown_unknown: llvm-ar - CC_wasm32_unknown_unknown: clang - run: cargo build --lib --target wasm32-unknown-unknown --no-default-features - - name: Generate JS bindings - run: | - wasm-bindgen target/wasm32-unknown-unknown/debug/rewire_viewer.wasm \ - --target web --out-dir web/ + crate-name: rewire_viewer diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 3df33a3..8cb2a08 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -91,40 +91,16 @@ jobs: runs-on: blacksmith-4vcpu-ubuntu-2404 steps: - uses: actions/checkout@v6 - - uses: dtolnay/rust-toolchain@stable + - uses: rewire-run/actions/setup-rust@v1 with: targets: wasm32-unknown-unknown + cache-key: wasm32 - - name: Install wasm-bindgen - uses: taiki-e/install-action@v2 + - uses: rewire-run/actions/build-wasm@v1 with: - tool: wasm-bindgen-cli@0.2.117 - - - name: Install LLVM tools - run: sudo apt-get update && sudo apt-get install -y llvm clang - - - name: Install binaryen - run: | - curl -sSL https://github.com/WebAssembly/binaryen/releases/download/version_130/binaryen-version_130-x86_64-linux.tar.gz | tar xz - echo "$PWD/binaryen-version_130/bin" >> "$GITHUB_PATH" - - - uses: Swatinem/rust-cache@v2 - with: - key: wasm32 - - - name: Build WASM - env: - AR_wasm32_unknown_unknown: llvm-ar - CC_wasm32_unknown_unknown: clang - run: cargo build --lib --target wasm32-unknown-unknown --release --no-default-features - - - name: Generate JS bindings - run: | - wasm-bindgen target/wasm32-unknown-unknown/release/rewire_viewer.wasm \ - --target web --out-dir web/ - - - name: Optimize WASM (wasm-opt -Oz) - run: wasm-opt -Oz web/rewire_viewer_bg.wasm -o web/rewire_viewer_bg.wasm + crate-name: rewire_viewer + profile: release + optimize: "true" - uses: actions/upload-artifact@v7 with: