diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 000000000..253f1aa23 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,28 @@ +# Request an environment that provides sudo (that goes with larger containers) +# and a minimal language environment. +sudo: true +language: minimal + +cache: cargo + +branches: + only: + - master + +env: + global: + - RUST_BACKTRACE=1 + matrix: + - RUST_TOOLCHAIN=nightly TARGET=wasm + - RUST_TOOLCHAIN=stable TARGET=native + +before_install: + # Check how much space we've got on this machine. + - df -h + +script: + - ./ci/script.sh + +after_script: + # Check how much free disk space left after the build + - df -h \ No newline at end of file diff --git a/ci/script.sh b/ci/script.sh new file mode 100755 index 000000000..e3f86d316 --- /dev/null +++ b/ci/script.sh @@ -0,0 +1,28 @@ +#!/usr/bin/env bash + +set -eux + +# Install rustup and the specified rust toolchain. +curl https://sh.rustup.rs -sSf | sh -s -- --default-toolchain=$RUST_TOOLCHAIN -y + +# Load cargo environment. Specifically, put cargo into PATH. +source ~/.cargo/env + +rustc --version +rustup --version +cargo --version + +case $TARGET in + "native") + sudo apt-get -y update + sudo apt-get install -y cmake pkg-config libssl-dev + + cargo test --all --locked "$@" + ;; + + "wasm") + # Install prerequisites and build all wasm projects + ./init.sh + ./build.sh --locked "$@" + ;; +esac \ No newline at end of file