stages:
- build
- publish
.build-base: &build_base
stage: build
image: rust:1-alpine
only:
- master
- merge_requests
- tags
before_script:
- apk add --update gcc musl-dev
test:
<<: *build_base
script:
- cargo test --release && cargo build --release
publish:
<<: *build_base
stage: publish
only:
- tags
when: manual
script:
- apk add bash
- "[ -d ~/.cargo ] || mkdir -p ~/.cargo"
- cargo build --release
- ./.gitlab/bin/check-tag.sh "$CI_COMMIT_TAG"
- ./.gitlab/bin/print-length.sh "$CARGO_TOKEN" || true
- cargo publish --token "$CARGO_TOKEN"