image: "rustlang/rust:nightly" stages: - build - test before_script: - git submodule update --init --recursive - rustup toolchain add "$(cat rust-toolchain)" - rustup target add x86_64-unknown-redox --toolchain "$(cat rust-toolchain)" - rustup show # Print version info for debugging cache: paths: - target/ # Redox only: - prefix/ - rust/ build:linux: stage: build script: - make all build:redox: stage: build variables: TARGET: x86_64-unknown-redox script: # Install the Redox OS toolchain ## (This can't be in before_script because that overrides ## the global before_script.) - apt-get update -qq - apt-get install -qq tar - '[ -e "prefix" ] || (mkdir prefix && wget -O - https://static.redox-os.org/toolchain/x86_64-unknown-redox/gcc-install.tar.gz | tar --extract --gzip --directory prefix)' - export PATH="$PWD/prefix/bin:$PATH" - export RUSTUP_TOOLCHAIN="$PWD/prefix" # Prepare xargo - cargo install xargo - '[ -e "rust" ] || git clone -b redox-2019-04-06 "https://gitlab.redox-os.org/redox-os/rust" --recursive' - export CARGO=xargo - export XARGO_HOME="$PWD/build/xargo" - export XARGO_RUST_SRC="$PWD/rust/src" # Main script - make -j `nproc` headers - make -j `nproc` install-headers DESTDIR="$PWD/prefix/$TARGET" - make -j `nproc` all test:linux: stage: test dependencies: - build:linux script: - make test - cd tests && make verify fmt: stage: test script: - rustup component add rustfmt-preview - ./fmt.sh -- --check allow_failure: true