image: "rust:latest"
services:
- docker:dind
variables:
DOCKER_TLS_CERTDIR: ""
stages:
- verify
- build
- publish
test:cargo:
stage: verify
cache:
key: "cache-test"
paths:
- ./target
script:
- rustc --version && cargo --version
- rustup component add rustfmt-preview
- rustup component add clippy-preview
- cargo fmt
- cargo test --all --verbose
release:cargo:
stage: build
cache:
key: "cache-release"
paths:
- ./target
script:
- cargo build --release --verbose
publish:cargo:
stage: publish
script:
- cargo publish --verbose --token $CARGO_TOKEN
only:
- tags