@@ -42,15 +42,38 @@ jobs:
4242 cargo install trunk --locked
4343 fi
4444
45- if ! command -v wasm-bindgen &> /dev/null; then
46- cargo install wasm-bindgen-cli --version 0.2.106
45+ REQUIRED_VERSION=$(cargo metadata --format-version 1 --no-deps 2>/dev/null \
46+ | python3 -c "
47+ import sys, json
48+ meta = json.load(sys.stdin)
49+ for pkg in meta['packages']:
50+ if pkg['name'] == 'wasm-bindgen':
51+ print(pkg['version'])
52+ break
53+ " || echo "")
54+
55+ if [ -z "$REQUIRED_VERSION" ]; then
56+ REQUIRED_VERSION=$(grep -A1 'name = "wasm-bindgen"' Cargo.lock \
57+ | grep version | head -1 | sed 's/.*version = "\(.*\)"/\1/')
58+ fi
59+
60+ echo "Required wasm-bindgen version: $REQUIRED_VERSION"
61+
62+ INSTALLED_VERSION=$(wasm-bindgen --version 2>/dev/null | awk '{print $2}' || echo "none")
63+ echo "Installed wasm-bindgen version: $INSTALLED_VERSION"
64+
65+ if [ "$INSTALLED_VERSION" != "$REQUIRED_VERSION" ]; then
66+ echo "Version mismatch, compiling wasm-bindgen-cli $REQUIRED_VERSION from source..."
67+ cargo install wasm-bindgen-cli --version "=$REQUIRED_VERSION" --locked
68+ else
69+ echo "wasm-bindgen-cli is up to date."
4770 fi
4871
4972 if ! command -v wasm-opt &> /dev/null; then
50- wget https://github.com/WebAssembly/binaryen/releases/download/version_126 /binaryen-version_126 -aarch64-linux.tar.gz
51- tar -xzf binaryen-version_126 -aarch64-linux.tar.gz
52- sudo mv binaryen-version_126 /bin/wasm-opt /usr/local/bin/
53- rm -rf binaryen-version_126 *
73+ wget https://github.com/WebAssembly/binaryen/releases/download/version_128 /binaryen-version_128 -aarch64-linux.tar.gz
74+ tar -xzf binaryen-version_128 -aarch64-linux.tar.gz
75+ sudo mv binaryen-version_128 /bin/wasm-opt /usr/local/bin/
76+ rm -rf binaryen-version_128 *
5477 fi
5578
5679 echo "$HOME/.cargo/bin" >> $GITHUB_PATH
0 commit comments