Skip to content

Commit 11f9f3d

Browse files
committed
travis: Fix wasm32 CI
Split emscripten stuff into its own target and stop relying on cargo web to download/manage then emscripten toolchain. We can just get it ourselves. We also now run the emscripten tests. Signed-off-by: Joe Richey <joerichey@google.com>
1 parent 33b859b commit 11f9f3d

File tree

1 file changed

+20
-12
lines changed

1 file changed

+20
-12
lines changed

.travis.yml

Lines changed: 20 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -27,15 +27,13 @@ matrix:
2727
- name: "Linux, beta"
2828
rust: beta
2929

30-
- name: "WASM via emscripten, stdweb, wasm-bindgen and WASI"
31-
rust: nightly
30+
- name: "WASM via stdweb, wasm-bindgen and WASI"
31+
rust: stable
3232
addons:
3333
firefox: latest
3434
chrome: stable
3535
install:
3636
- rustup target add wasm32-unknown-unknown
37-
- rustup target add wasm32-unknown-emscripten
38-
- rustup target add asmjs-unknown-emscripten
3937
- rustup target add wasm32-wasi
4038
# Get latest geckodriver
4139
- export VERSION=$(curl -s https://api.github.com/repos/mozilla/geckodriver/releases/latest | jq -r ".tag_name")
@@ -60,15 +58,7 @@ matrix:
6058
- tar -xzf wasm-bindgen.tar.gz --strip-components=1
6159
# Place the runner binaries in our PATH
6260
- mv cargo-web wasmtime wasm-bindgen-test-runner $HOME/.cargo/bin
63-
# Download and setup emscripten
64-
- cargo web prepare-emscripten
65-
env: EMCC_CFLAGS="-s ERROR_ON_UNDEFINED_SYMBOLS=0"
6661
script:
67-
# We cannot run emscripten test binaries (see rust-lang/rust#63649).
68-
# However, we can still build and link all tests to make sure that works.
69-
# This is actually useful as it finds stuff such as rust-random/rand#669
70-
- cargo web test --target wasm32-unknown-emscripten --no-run
71-
- cargo web test --target asmjs-unknown-emscripten --no-run
7262
# wasi tests
7363
- cargo test --target wasm32-wasi
7464
# stdweb tests (Node, Chrome)
@@ -79,6 +69,24 @@ matrix:
7969
- GECKODRIVER=$PWD/geckodriver cargo test --target wasm32-unknown-unknown --features=test-in-browser
8070
- CHROMEDRIVER=$PWD/chromedriver cargo test --target wasm32-unknown-unknown --features=test-in-browser
8171

72+
- name: "WASM via Emscripten"
73+
rust: stable
74+
env:
75+
- CARGO_TARGET_WASM32_UNKNOWN_EMSCRIPTEN_RUNNER=node
76+
- CARGO_TARGET_ASMJS_UNKNOWN_EMSCRIPTEN_RUNNER=node
77+
install:
78+
- rustup target add wasm32-unknown-emscripten
79+
- rustup target add asmjs-unknown-emscripten
80+
- export VERSION=1.39.13 # Pin version for stability
81+
- git clone https://github.com/emscripten-core/emsdk.git
82+
- ./emsdk/emsdk install $VERSION
83+
- ./emsdk/emsdk activate $VERSION
84+
- source ./emsdk/emsdk_env.sh
85+
script:
86+
- cargo test --target wasm32-unknown-emscripten
87+
# Prevent 'wasm2js does not support source maps yet' error.
88+
- RUSTFLAGS='-C debuginfo=0' cargo test --target asmjs-unknown-emscripten
89+
8290
- name: "Linux, nightly, docs"
8391
rust: nightly
8492
os: linux

0 commit comments

Comments
 (0)