language: rust sudo: false INSTALL_NODE_VIA_NVM: &INSTALL_NODE_VIA_NVM | rustup target add wasm32-unknown-unknown curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash source ~/.nvm/nvm.sh nvm install v10.5 INSTALL_GECKODRIVER: &INSTALL_GECKODRIVER | curl --retry 5 -LO https://github.com/mozilla/geckodriver/releases/download/v0.21.0/geckodriver-v0.21.0-linux64.tar.gz tar xf geckodriver-v0.21.0-linux64.tar.gz INSTALL_CHROMEDRIVER: &INSTALL_CHROMEDRIVER | curl --retry 5 -LO https://chromedriver.storage.googleapis.com/2.41/chromedriver_linux64.zip unzip chromedriver_linux64.zip export CHROMEDRIVER_ARGS=--verbose DEPLOY_TO_GITHUB: &DEPLOY_TO_GITHUB before_deploy: | name="wasm-bindgen-$TRAVIS_TAG-$TARGET" mkdir "$name" cp "target/$TARGET/release/wasm-bindgen" "$name/" cp "target/$TARGET/release/wasm2es6js" "$name/" cp "target/$TARGET/release/wasm-bindgen-test-runner" "$name/" cp README.md LICENSE-MIT LICENSE-APACHE "$name/" tar czvf "$name.tar.gz" "$name" deploy: api_key: secure: "qCiELnEnvyKpWHDttgTNf+ElZGbWlvthu5aOIj5nYfov+h6g1+mkWnDFP6at/WPlE78zE/f/z/dL2KB2I7w/cxH/T4P1nWh0A9DvrpY6hqWkK2pgN5dPeWE/a4flI7AdH0A6wMRw7m00uMgDjlzN78v7XueccpJCxSO5allQN5jweAQvMX2QA07TbLRJc7Lq6lfVwSf8OfrcO8qCbcIzJTsC4vtbh6jkUYg1OAaU2tAYlskBy9ZYmHWCExIAu/zxzcJY9OpApPD9Ea4CyrsfjniAyRBJ87Weh/sP4XhiWeRPVmvA4HAzv4Pps9ps+Ar5QmsX53rhKQ3id7/VPR8ggaAHxrYUiJPvJRtbP6cKKOlDiK0ooP+vI4vjxWeNVj9ibEolSYOlT0ENIvPK1BppA6VgAoJOjwPr0Q16Ma4AmvLkIkowJiXCm2Jlje/5c0vPEAGJVgUtkj3jFQzgXwyEMpzxUlhHmYpmnfeaM0tK/Kiiwe1monL/ydMlyfV55kNylylCg+XoTnf420AFChKbD4DM5Z7ZsjU9g8fF3LUoN0sKpmLDp+GvwjLi9YtGogWB71Q2MFp43MSL0YLshkyYYoZKrVMiy5J9hKNUxhT2jNEq53Z69syIHHMCxHL9GoAcuHxIKOA7uTMW0aCoyy2I+dfAKKsrUGwGYaNC5LZdUQI=" file_glob: true file: - wasm-bindgen-$TRAVIS_TAG-$TARGET.tar.gz on: tags: true provider: releases skip_cleanup: true if: branch = master OR branch =~ /^\d/ matrix: include: # Tests pass on nightly - rust: nightly env: JOB=test-bindgen install: - *INSTALL_NODE_VIA_NVM - *INSTALL_GECKODRIVER - export GECKODRIVER=`pwd`/geckodriver script: # Run a test or two that makes sure `#[wasm_bindgen]` works "reasonably" # on non-wasm platforms - cargo test # Run the main body of the test suite - cargo test --target wasm32-unknown-unknown # Rerun the test suite but disable `--debug` in generated JS - WASM_BINDGEN_NO_DEBUG=1 cargo test --target wasm32-unknown-unknown # Make sure our serde tests work - cargo test --target wasm32-unknown-unknown --features serde-serialize # Make sure the `std` feature works if disabled - cargo test --target wasm32-unknown-unknown -p no-std # Make sure the `wasm-bindgen-futures` tests pass. Right now, this just # verifies that the example program in the crate level docs compiles. - cargo test -p wasm-bindgen-futures addons: firefox: latest if: branch = master # All examples work - rust: nightly env: JOB=examples-build install: - *INSTALL_NODE_VIA_NVM - npm ci --verbose script: - | for dir in `ls examples | grep -v README | grep -v asm.js | grep -v no_modules`; do (cd examples/$dir && sed -i 's/: "webpack-dev-server"/: "webpack"/' package.json && sed -i 's/npm install//' build.sh && ln -s ../../node_modules . && ./build.sh) || exit 1; done if: branch = master # The `web-sys` crate's tests pass on nightly. - rust: nightly env: JOB=test-web-sys install: - *INSTALL_NODE_VIA_NVM - *INSTALL_GECKODRIVER - *INSTALL_CHROMEDRIVER script: - export RUST_LOG=wasm_bindgen_test_runner - CHROMEDRIVER=`pwd`/chromedriver cargo test -p web-sys --target wasm32-unknown-unknown - GECKODRIVER=`pwd`/geckodriver cargo test -p web-sys --target wasm32-unknown-unknown addons: firefox: latest chrome: stable if: branch = master # The `js-sys` crate's tests pass on nightly. - rust: nightly env: JOB=test-js-sys install: - *INSTALL_NODE_VIA_NVM - *INSTALL_GECKODRIVER - *INSTALL_CHROMEDRIVER script: - export RUST_LOG=wasm_bindgen_test_runner - CHROMEDRIVER=`pwd`/chromedriver cargo test -p js-sys --target wasm32-unknown-unknown - GECKODRIVER=`pwd`/geckodriver cargo test -p js-sys --target wasm32-unknown-unknown addons: firefox: latest chrome: stable if: branch = master # Tests pass on nightly using yarn - rust: nightly env: JOB=test-yarn-smoke install: - *INSTALL_NODE_VIA_NVM - travis_retry curl -OLSf https://yarnpkg.com/install.sh - travis_retry bash install.sh -- --version 1.7.0 - export PATH=$HOME/.yarn/bin:$PATH - yarn install --freeze-lockfile script: cargo test api::works if: branch = master # WebIDL tests pass on nightly - rust: nightly env: JOB=test-webidl install: *INSTALL_NODE_VIA_NVM script: - cargo test -p wasm-bindgen-webidl - cargo test -p webidl-tests --target wasm32-unknown-unknown if: branch = master # UI tests for the macro work just fine - rust: nightly env: JOB=macro-ui script: cargo test -p ui-tests if: branch = master # Dist linux binary - rust: nightly env: JOB=dist-linux TARGET=x86_64-unknown-linux-musl before_script: rustup target add $TARGET script: cargo build --manifest-path crates/cli/Cargo.toml --release --target $TARGET --features vendored-openssl addons: apt: packages: - musl-tools <<: *DEPLOY_TO_GITHUB # Dist OSX binary - rust: nightly os: osx env: JOB=dist-osx MACOSX_DEPLOYMENT_TARGET=10.7 TARGET=x86_64-apple-darwin script: cargo build --manifest-path crates/cli/Cargo.toml --release --target $TARGET <<: *DEPLOY_TO_GITHUB # CLI builds on stable - rust: stable env: JOB=check-stable-cli script: cargo check --manifest-path crates/cli/Cargo.toml if: branch = master # CLI builds on nightly - rust: nightly env: JOB=check-nightly-cli script: cargo check --manifest-path crates/cli/Cargo.toml if: branch = master # Build documentation for the gh-pages branch - rust: nightly env: JOB=guide-build-and-deploy cache: directories: - $HOME/.cargo before_script: - (test -x $HOME/.cargo/bin/cargo-install-update || cargo install cargo-update) - (test -x $HOME/.cargo/bin/mdbook || cargo install --vers "^0.1" mdbook) - cargo install-update -a script: - (cd guide && mdbook build) - cargo doc --no-deps -p wasm-bindgen -p web-sys -p js-sys -p wasm-bindgen-futures - mv target/doc guide/book/api deploy: provider: pages skip-cleanup: true github-token: $GITHUB_TOKEN # Set in travis-ci.org dashboard, marked secure local-dir: guide/book keep-history: false if: branch = master notifications: email: on_success: never