stages: - check - build variables: CARGO_TERM_COLOR: always RUST_BACKTRACE: "1" cache: key: files: - Cargo.lock prefix: cargo paths: - target/ fmt: stage: check image: rust:latest script: - rustup component add rustfmt - cargo fmt --check rules: - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH clippy: stage: check image: rust:latest before_script: - rustup component add clippy script: - cargo clippy --all-targets -- --deny warnings rules: - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH allow_failure: true test: stage: check image: rust:latest script: - cargo test --locked rules: - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH build: stage: build image: rust:latest script: - cargo build --release --locked artifacts: name: "model-radar-linux-x86_64" paths: - target/release/model-radar expire_in: 30 days