image: "redoxos/redoxer:latest"

stages:
    - build
    - test

before_script:
    - apt-get update -qq
    - apt-get install -qq git
    - git submodule sync --recursive
    - git submodule update --init --recursive

cache:
    paths:
        - target/

build:linux:
    stage: build
    script:
        - rustup toolchain add "$(cat rust-toolchain)"
        - rustup show      # Print version info for debugging
        - make -j "$(nproc)" all

build:redox:
    stage: build
    variables:
        TARGET: x86_64-unknown-redox
    script:
        - export RUSTUP_TOOLCHAIN="$HOME/.redoxer/toolchain"
        - export PATH="$RUSTUP_TOOLCHAIN/bin:$PATH"
        - rustup show      # Print version info for debugging
        - make -j "$(nproc)" all

test:linux:
    stage: test
    dependencies:
        - build:linux
    script:
        - make test

test:redox:
    stage: test
    dependencies:
        - build:redox
    variables:
        TARGET: x86_64-unknown-redox
    script:
        - export RUSTUP_TOOLCHAIN="$HOME/.redoxer/toolchain"
        - export PATH="$RUSTUP_TOOLCHAIN/bin:$PATH"
        - export TEST_RUNNER="redoxer exec --folder . -- sh --"
        - make test

fmt:
    stage: test
    script:
        - rustup component add rustfmt-preview
        - ./fmt.sh -- --check
    allow_failure: true
