sudo: false dist: xenial language: rust rust: - nightly cache: directories: - $HOME/Library/Caches/Homebrew os: - linux - osx env: matrix: - ARCH="riscv32" SRC="ucore" - ARCH="riscv64" SRC="ucore" - ARCH="i386" SRC="ucore" - ARCH="x86_64" SRC="ucore" - ARCH="aarch64" SRC="ucore" - ARCH="riscv32" SRC="rust" - ARCH="riscv64" SRC="rust" - ARCH="i386" SRC="rust" - ARCH="x86_64" SRC="rust" - ARCH="aarch64" SRC="rust" - ARCH="x86_64" SRC="biscuit" - ARCH="aarch64" SRC="biscuit" # no musl gcc allow_failures: matrix: - ARCH="x86_64" SRC="biscuit" - ARCH="aarch64" SRC="biscuit" install: - if [ $ARCH = riscv32 ] || [ $ARCH = riscv64 ]; then [ $TRAVIS_OS_NAME = linux ] && export FILE="riscv64-unknown-elf-gcc-8.1.0-2019.01.0-x86_64-linux-ubuntu14"; [ $TRAVIS_OS_NAME = osx ] && export FILE="riscv64-unknown-elf-gcc-8.1.0-2019.01.0-x86_64-apple-darwin"; wget https://static.dev.sifive.com/dev-tools/$FILE.tar.gz; tar xf $FILE.tar.gz; export PATH=$PATH:$PWD/$FILE/bin; fi - if [ $ARCH = aarch64 ]; then if [ $TRAVIS_OS_NAME = linux ]; then export FILE="gcc-arm-8.2-2018.11-x86_64-aarch64-elf"; wget https://developer.arm.com/-/media/Files/downloads/gnu-a/8.2-2018.11/$FILE.tar.xz; tar -xvf $FILE.tar.xz; export PATH=$PATH:$PWD/$FILE/bin; sudo apt update; sudo apt install musl-tools linux-headers-$(uname -r); elif [ $TRAVIS_OS_NAME = osx ]; then brew tap SergioBenitez/osxct; brew install aarch64-none-elf; brew install FiloSottile/musl-cross/musl-cross --with-aarch64; fi; fi - if [ $ARCH = i386 ]; then if [ $TRAVIS_OS_NAME = osx ]; then brew install i386-elf-gcc; fi; fi - if [ $ARCH = x86_64 ]; then if [ $TRAVIS_OS_NAME = linux ]; then sudo apt update; sudo apt install musl-tools linux-headers-$(uname -r); elif [ $TRAVIS_OS_NAME = osx ]; then brew tap altkatz/homebrew-gcc_cross_compilers; brew install FiloSottile/musl-cross/musl-cross; travis_wait brew install x64-elf-gcc; fi; fi before_script: - rustup component add rust-src - (test -x $HOME/.cargo/bin/cargo-xbuild || cargo install cargo-xbuild) script: - make $SRC arch=$ARCH