46 lines
1.3 KiB
YAML
46 lines
1.3 KiB
YAML
variables:
|
|
- &rust_image "docker.io/rust:1.80.0"
|
|
- &slow_check_paths
|
|
- path:
|
|
# rust source code
|
|
- "crates/**"
|
|
- "src/**"
|
|
- "tests/**"
|
|
- "**/Cargo.toml"
|
|
- "Cargo.lock"
|
|
# database migrations
|
|
- "migrations/**"
|
|
# config files and scripts used by ci
|
|
- ".woodpecker.yml"
|
|
|
|
steps:
|
|
toml_fmt:
|
|
image: docker.io/tamasfe/taplo:0.9.3
|
|
commands:
|
|
- taplo format --check
|
|
|
|
cargo_machete:
|
|
image: *rust_image
|
|
commands:
|
|
- wget https://github.com/cargo-bins/cargo-binstall/releases/latest/download/cargo-binstall-x86_64-unknown-linux-musl.tgz
|
|
- tar -xvf cargo-binstall-x86_64-unknown-linux-musl.tgz
|
|
- rm cargo-binstall-x86_64-unknown-linux-musl.tgz
|
|
- mv cargo-binstall /usr/local/cargo/bin
|
|
- cargo binstall -y cargo-machete
|
|
- cargo machete
|
|
|
|
ignored_files:
|
|
image: docker.io/alpine:latest
|
|
commands:
|
|
- apk add git
|
|
- IGNORED=$(git ls-files --cached -i --exclude-standard)
|
|
- if [[ "$IGNORED" ]]; then echo "Ignored files present:\n$IGNORED\n"; exit 1; fi
|
|
|
|
publish_to_crates_io:
|
|
image: *rust_image
|
|
commands:
|
|
- cargo login "$CARGO_REGISTRY_TOKEN"
|
|
- cargo publish --registry crates-io --no-verify
|
|
secrets: [cargo_registry_token]
|
|
when:
|
|
event: tag
|