7676 wasm-sdk-browser :
7777 runs-on : ubuntu-latest
7878 timeout-minutes : 45
79+ env :
80+ WASM_PACK_VERSION : " 0.13.1"
81+ WASM_BINDGEN_TEST_TIMEOUT : " 300"
82+ WASM_BROWSER_TEST_LOG : " bindings/wasm-sdk/target/wasm-browser-tests-chrome.log"
83+ WASM_BINDGEN_TEST_RUNNER_VERSION : " 0.2.117"
7984 steps :
8085 - uses : actions/checkout@v4
8186 with :
@@ -86,20 +91,123 @@ jobs:
8691 - name : Add wasm32 target
8792 run : rustup target add wasm32-unknown-unknown
8893 - name : Install wasm-pack
89- run : cargo install wasm-pack --locked
94+ run : cargo install wasm-pack --version ${WASM_PACK_VERSION} --locked
95+ - name : Install Chrome
96+ uses : browser-actions/setup-chrome@v1
97+ with :
98+ chrome-version : stable
99+ - name : Browser tooling versions
100+ run : |
101+ wasm-pack --version
102+ if command -v google-chrome >/dev/null 2>&1; then
103+ google-chrome --version
104+ elif command -v chromium >/dev/null 2>&1; then
105+ chromium --version
106+ elif command -v chromium-browser >/dev/null 2>&1; then
107+ chromium-browser --version
108+ else
109+ echo "Chrome/Chromium binary not found in PATH"
110+ exit 1
111+ fi
112+ - name : wasm-sdk browser tests
113+ run : |
114+ WASM_TEST_BROWSER=chrome ./bindings/wasm-sdk/scripts/run-browser-tests.sh
115+ - name : Verify wasm-bindgen test runner version
116+ if : always()
117+ run : |
118+ RUNNER_PATH="$(find "${HOME}/.cache/.wasm-pack" -maxdepth 2 -type f -name "wasm-bindgen-test-runner" | head -n1 || true)"
119+ if [ -z "${RUNNER_PATH}" ]; then
120+ echo "wasm-bindgen-test-runner binary was not found in cache"
121+ exit 1
122+ fi
123+ RAW_VERSION="$(${RUNNER_PATH} --version)"
124+ echo "Runner path: ${RUNNER_PATH}"
125+ echo "Runner version: ${RAW_VERSION}"
126+ ACTUAL_VERSION="$(printf '%s\n' "${RAW_VERSION}" | awk '{print $2}')"
127+ if [ "${ACTUAL_VERSION}" != "${WASM_BINDGEN_TEST_RUNNER_VERSION}" ]; then
128+ echo "Unexpected wasm-bindgen-test-runner version: ${ACTUAL_VERSION} (expected ${WASM_BINDGEN_TEST_RUNNER_VERSION})"
129+ exit 1
130+ fi
131+ - name : Cached wasm runner versions
132+ if : always()
133+ run : |
134+ find "${HOME}/.cache/.wasm-pack" -maxdepth 2 -type f -name "wasm-bindgen-test-runner" -print -exec {} --version \; || true
135+ find "${HOME}/.cache/.wasm-pack" -maxdepth 3 -type f -name "chromedriver" -print -exec {} --version \; || true
136+ - name : Upload browser test artifacts (chrome)
137+ if : failure()
138+ uses : actions/upload-artifact@v4
139+ with :
140+ name : wasm-sdk-browser-chrome-logs
141+ path : |
142+ bindings/wasm-sdk/target/wasm-browser-tests-chrome.log
143+ bindings/wasm-sdk/target/wasm32-unknown-unknown/debug/deps/*.wasm
144+ if-no-files-found : warn
145+
146+ wasm-sdk-browser-diagnostic-firefox :
147+ runs-on : ubuntu-latest
148+ timeout-minutes : 45
149+ continue-on-error : true
150+ env :
151+ WASM_PACK_VERSION : " 0.13.1"
152+ WASM_BINDGEN_TEST_TIMEOUT : " 300"
153+ WASM_BROWSER_TEST_LOG : " bindings/wasm-sdk/target/wasm-browser-tests-firefox.log"
154+ WASM_BINDGEN_TEST_RUNNER_VERSION : " 0.2.117"
155+ steps :
156+ - uses : actions/checkout@v4
157+ with :
158+ submodules : true
159+ - uses : actions-rust-lang/setup-rust-toolchain@v1
160+ with :
161+ rustflags : " "
162+ - name : Add wasm32 target
163+ run : rustup target add wasm32-unknown-unknown
164+ - name : Install wasm-pack
165+ run : cargo install wasm-pack --version ${WASM_PACK_VERSION} --locked
90166 - name : Install Firefox
91167 run : sudo apt-get update && sudo apt-get install -y firefox
92- - name : wasm-sdk browser tests
93- env :
94- WASM_BINDGEN_TEST_TIMEOUT : " 300"
168+ - name : Install geckodriver
95169 run : |
96- cd bindings/wasm-sdk
97- if command -v geckodriver >/dev/null 2>&1; then
98- export GECKODRIVER="$(command -v geckodriver)"
99- elif [ -x /snap/bin/geckodriver ]; then
100- export GECKODRIVER="/snap/bin/geckodriver"
170+ GECKO_VERSION="v0.36.0"
171+ curl -fsSL -o /tmp/geckodriver.tar.gz "https://github.com/mozilla/geckodriver/releases/download/${GECKO_VERSION}/geckodriver-${GECKO_VERSION}-linux64.tar.gz"
172+ tar -xzf /tmp/geckodriver.tar.gz -C /tmp
173+ sudo install -m 0755 /tmp/geckodriver /usr/local/bin/geckodriver
174+ - name : Browser tooling versions
175+ run : |
176+ wasm-pack --version
177+ firefox --version
178+ geckodriver --version | head -n 1
179+ - name : wasm-sdk browser tests (diagnostic)
180+ run : |
181+ WASM_TEST_BROWSER=firefox ./bindings/wasm-sdk/scripts/run-browser-tests.sh
182+ - name : Verify wasm-bindgen test runner version (diagnostic)
183+ if : always()
184+ run : |
185+ RUNNER_PATH="$(find "${HOME}/.cache/.wasm-pack" -maxdepth 2 -type f -name "wasm-bindgen-test-runner" | head -n1 || true)"
186+ if [ -z "${RUNNER_PATH}" ]; then
187+ echo "wasm-bindgen-test-runner binary was not found in cache"
188+ exit 1
101189 fi
102- wasm-pack test --headless --firefox
190+ RAW_VERSION="$(${RUNNER_PATH} --version)"
191+ echo "Runner path: ${RUNNER_PATH}"
192+ echo "Runner version: ${RAW_VERSION}"
193+ ACTUAL_VERSION="$(printf '%s\n' "${RAW_VERSION}" | awk '{print $2}')"
194+ if [ "${ACTUAL_VERSION}" != "${WASM_BINDGEN_TEST_RUNNER_VERSION}" ]; then
195+ echo "Unexpected wasm-bindgen-test-runner version: ${ACTUAL_VERSION} (expected ${WASM_BINDGEN_TEST_RUNNER_VERSION})"
196+ exit 1
197+ fi
198+ - name : Cached wasm runner versions
199+ if : always()
200+ run : |
201+ find "${HOME}/.cache/.wasm-pack" -maxdepth 2 -type f -name "wasm-bindgen-test-runner" -print -exec {} --version \; || true
202+ - name : Upload browser test artifacts (firefox diagnostic)
203+ if : failure()
204+ uses : actions/upload-artifact@v4
205+ with :
206+ name : wasm-sdk-browser-firefox-logs
207+ path : |
208+ bindings/wasm-sdk/target/wasm-browser-tests-firefox.log
209+ bindings/wasm-sdk/target/wasm32-unknown-unknown/debug/deps/*.wasm
210+ if-no-files-found : warn
103211
104212 lib-sdk-tests :
105213 runs-on : warp-ubuntu-latest-x64-16x
0 commit comments