diff --git a/.azure-pipelines.yml b/.azure-pipelines.yml index 4893d187..30b1ab77 100644 --- a/.azure-pipelines.yml +++ b/.azure-pipelines.yml @@ -1,7 +1,8 @@ pr: ["master"] jobs: - - job: + - job: test_all_native + displayName: "Native Tests" pool: vmImage: 'ubuntu-16.04' steps: @@ -10,6 +11,25 @@ jobs: rust_version: stable - bash: | export RUST_BACKTRACE=1 - cargo check --all || exit cargo test --all || exit - displayName: Run cargo check and test + displayName: Run cargo check and test + - job: test_headless_firefox + displayName: "Headless Browser Tests (Firefox)" + steps: + - template: .ci/install-rust.yml + parameters: + rust_version: stable + - template: .ci/install-wasm-pack.yml + - template: .ci/wasm-pack-test-headless.yml + parameters: + browser_flag: --firefox + - job: test_headless_chrome + displayName: "Headless Browser Tests (Chrome)" + steps: + - template: .ci/install-rust.yml + parameters: + rust_version: stable + - template: .ci/install-wasm-pack.yml + - template: .ci/wasm-pack-test-headless.yml + parameters: + browser_flag: --chrome diff --git a/.ci/install-wasm-pack.yml b/.ci/install-wasm-pack.yml new file mode 100644 index 00000000..2f530081 --- /dev/null +++ b/.ci/install-wasm-pack.yml @@ -0,0 +1,5 @@ +steps: + - script: "curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh -s -- -f" + displayName: "Install `wasm-pack`" + - script: "wasm-pack --version" + displayName: "Query `wasm-pack` version" diff --git a/.ci/wasm-pack-test-headless.yml b/.ci/wasm-pack-test-headless.yml new file mode 100644 index 00000000..0b38f02c --- /dev/null +++ b/.ci/wasm-pack-test-headless.yml @@ -0,0 +1,10 @@ +steps: + - script: | + set -ex + for x in $(ls crates); do + wasm-pack test --headless $BROWSER_FLAG crates/$x -- --all-features + wasm-pack test --headless $BROWSER_FLAG crates/$x -- --no-default-features + done + env: + BROWSER_FLAG: ${{parameters.browser_flag}} + displayName: Run `wasm-pack test`