image: 'rust:latest'
cache:
paths:
- cargo/
stages:
- build
- test
variables:
CARGO_HOME: $CI_PROJECT_DIR/cargo
.only-mr-and-master:
only:
- master
- merge_requests
build:
stage: build
extends: .only-mr-and-master
script:
- rustc --version
- cargo --version
- cargo build --verbose
artifacts:
expire_in: 1 hour
paths:
- cargo/
- target/
build-release:
stage: build
only:
- master
script:
- rustc --version
- cargo --version
- cargo build --release --verbose
artifacts:
expire_in: 1 hour
paths:
- cargo/
- target/
test:
stage: test
extends: .only-mr-and-master
script:
- cargo test --locked --verbose
needs: ['build']