sudo: false dist: bionic language: rust rust: nightly-2019-07-15 os: - linux - osx cache: cargo: true directories: - $HOME/Library/Caches/Homebrew - $TRAVIS_BUILD_DIR/qemu-4.1.0 addons: homebrew: update: true brewfile: true packages: - qemu - dtc env: matrix: - ARCH="riscv64" - ARCH="riscv64" OPTS="board=u540" - ARCH="riscv64" OPTS="board=k210" - ARCH="riscv64" OPTS="board=rocket_chip" - ARCH="riscv32" - ARCH="x86_64" - ARCH="x86_64" OPTS="board=pc" - ARCH="aarch64" - ARCH="mipsel" OPTS="board=malta" install: - if [ $TRAVIS_OS_NAME = linux ]; then [ ! -d qemu-4.1.0/$ARCH-softmmu ] && wget https://download.qemu.org/qemu-4.1.0.tar.xz && tar xJf qemu-4.1.0.tar.xz > /dev/null && cd qemu-4.1.0 && ./configure --target-list=$ARCH-softmmu && make && cd ..; export PATH=$PATH:$PWD/qemu-4.1.0/$ARCH-softmmu:$PWD/qemu-4.1.0; sudo apt update; sudo apt install device-tree-compiler -y; fi before_script: - rustup component add rust-src llvm-tools-preview - (test -x $HOME/.cargo/bin/cargo-objdump || cargo install cargo-binutils) - (test -x $HOME/.cargo/bin/cargo-xbuild || cargo install cargo-xbuild) script: - cd user && make sfsimg arch=$ARCH prebuilt=1 && cd .. - cd kernel && make build arch=$ARCH $OPTS && cd .. - cd kernel && make test arch=$ARCH $OPTS && cd .. before_cache: - if [ $TRAVIS_OS_NAME = osx ]; then brew cleanup; fi