diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 82441c05d524..4bf6b44e2003 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -271,6 +271,32 @@ jobs: env: RUST_BACKTRACE: 1 + # Perform all tests (debug mode) for `wasmtime` with the experimental x64 + # backend. This runs on the nightly channel of Rust (because of issues with + # unifying Cargo features on stable) on Ubuntu. + test_x64: + name: Test x64 new backend + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + with: + submodules: true + - uses: ./.github/actions/install-rust + with: + toolchain: nightly-2020-08-25 + - uses: ./.github/actions/define-llvm-env + + # Install wasm32 targets in order to build various tests throughout the + # repo. + - run: rustup target add wasm32-wasi + - run: rustup target add wasm32-unknown-unknown + + # Run the x64 CI script. + - run: ./ci/run-experimental-x64-ci.sh + env: + CARGO_VERSION: "+nightly-2020-08-25" + RUST_BACKTRACE: 1 + # Verify that cranelift's code generation is deterministic meta_determinist_check: name: Meta deterministic check diff --git a/ci/run-experimental-x64-ci.sh b/ci/run-experimental-x64-ci.sh index 0997084c8cc8..edadba2b9c84 100755 --- a/ci/run-experimental-x64-ci.sh +++ b/ci/run-experimental-x64-ci.sh @@ -1,6 +1,11 @@ #!/bin/bash -cargo +nightly \ +# Use the Nightly variant of the compiler to properly unify the +# experimental_x64 feature across all crates. Once the feature has stabilized +# and become the default, we can remove this. +CARGO_VERSION=${CARGO_VERSION:-"+nightly"} + +cargo $CARGO_VERSION \ -Zfeatures=all -Zpackage-features \ test \ --features test-programs/test_programs \