stages:
- verify
- test
- build
.vet-tools: &vet-tools
image: grauwoelfchen/rust-vet-tools:stable
except:
- tags
check:
stage: verify
<<: *vet-tools
before_script:
- rustc --version
- cargo --version
- mkdir -p .git/hooks
script:
- make verify:check
format:
stage: verify
<<: *vet-tools
before_script:
- rustc --version
- cargo --version
- cargo fmt --version
- mkdir -p .git/hooks
script:
- make verify:format
lint:
stage: verify
<<: *vet-tools
before_script:
- rustc --version
- cargo --version
- cargo clippy --version
- mkdir -p .git/hooks
script:
- make verify:lint
test:
stage: test
<<: *vet-tools
before_script:
- rustc --version
- cargo --version
- kcov --version
- mkdir -p .git/hooks
script:
- KCOV_PATH=/usr/bin/kcov make coverage
after_script:
- cat target/coverage/index.json
build:
stage: build
image: grauwoelfchen/rust:stable
before_script:
- rustc --version
- cargo --version
- mkdir -p .git/hooks
script:
- make build:debug
cache:
untracked: true
only:
- master
release:
stage: build
image: grauwoelfchen/rust:stable
before_script:
- rustc --version
- cargo --version
- mkdir -p .git/hooks
script:
- make build:release
cache:
untracked: true
only:
- tags