default:
  image: rust:1.68-bookworm
  before_script:
    - wget -q https://cloud.cuwott.fr/s/9fyrejDxMdNRQNn/download/riscv64-cross-compiler-multilib.tar.gz
    - mkdir /opt/riscv
    - tar xzf riscv64-cross-compiler-multilib.tar.gz -C /opt/riscv

stages:
  - test

unit-test-job:
  stage: test
  script:
    - echo "Compiling c files"
    - make
    - echo "Running unit tests..."
    - cargo test

unsafe-test-job:
  stage: test
  script:
    - echo "Checking if List is still safe"
    - rustup +nightly component add miri
    - export MIRIFLAGS="-Zmiri-disable-isolation"
    - cargo +nightly miri test utility::list::test
  only:
    changes:
      - "src/utility/list.rs"

lint-test-job:
  only:
    refs:
      - merge_requests
  stage: test
  script:
    - echo "Linting code..."
    - rustup component add clippy
    - cargo clippy -- -D warnings
