1
0
mirror of https://github.com/rcore-os/rCore.git synced 2024-11-22 16:16:16 +04:00
rCore/.travis.yml
2019-08-07 16:35:38 +08:00

90 lines
2.8 KiB
YAML

sudo: false
dist: xenial
language: rust
rust: nightly-2019-06-15
os:
- linux
# - osx # too slow and hard to fix, skip it for now
cache:
cargo: true
directories:
- $HOME/Library/Caches/Homebrew
- $TRAVIS_BUILD_DIR/qemu-4.0.0
addons:
homebrew:
packages:
- qemu
env:
matrix:
- ARCH="riscv64"
- ARCH="riscv64" OPTS="board=u540"
- ARCH="riscv32"
- ARCH="x86_64"
- ARCH="aarch64"
- ARCH="mipsel" OPTS="board=malta"
matrix:
allow_failures:
- os: osx
install:
- if [ $ARCH = riscv32 ] || [ $ARCH = riscv64 ]; then
[ $TRAVIS_OS_NAME = linux ] && export FILE="riscv64-unknown-elf-gcc-8.2.0-2019.05.3-x86_64-linux-ubuntu14";
[ $TRAVIS_OS_NAME = osx ] && export FILE="riscv64-unknown-elf-gcc-8.2.0-2019.05.3-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 -xf $FILE.tar.xz;
export PATH=$PATH:$PWD/$FILE/bin;
elif [ $TRAVIS_OS_NAME = osx ]; then
brew tap SergioBenitez/osxct;
brew install aarch64-none-elf;
fi;
fi
- if [ $TRAVIS_OS_NAME = linux ]; then
wget https://download.qemu.org/qemu-4.0.0.tar.xz && tar xJf qemu-4.0.0.tar.xz > /dev/null && cd qemu-4.0.0 && ./configure --target-list=$ARCH-softmmu && make && cd ..;
export PATH=$PATH:$PWD/qemu-4.0.0/$ARCH-softmmu:$PWD/qemu-4.0.0;
sudo apt update;
sudo apt install device-tree-compiler -y;
fi
- if [ $TRAVIS_OS_NAME = linux ]; then
[ $ARCH = riscv32 ] && export FILE="riscv32-linux-musl-cross";
[ $ARCH = riscv64 ] && export FILE="riscv64-linux-musl-cross";
[ $ARCH = mipsel ] && export FILE="mipsel-linux-musln32-cross";
[ $ARCH = aarch64 ] && export FILE="aarch64-linux-musl-cross";
[ $ARCH = x86_64 ] && export FILE="x86_64-linux-musl-cross";
sudo apt update;
sudo apt install linux-headers-$(uname -r);
wget https://musl.cc/$FILE.tgz;
tar -xf $FILE.tgz;
export PATH=$PATH:$PWD/$FILE/bin;
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)
- if [ $ARCH = x86_64 ]; then
(test -x $HOME/.cargo/bin/bootimage || cargo install bootimage --version 0.6.6);
fi
script:
- cd user && make sfsimg arch=$ARCH && cd ..
- cd kernel && make build arch=$ARCH $OPTS && cd ..
- if [ $ARCH = riscv32 ]; then
cd tests && ./test.sh && cd ..;
fi