type: 'library'
language: 'rust'
platform: 'system'
stack: 'backend'
tags: ['configuration', 'universal', 'multi-language', 'figment', 'enterprise']
env:
CI: 'true'
MOON_BASE: 'origin/main'
tasks:
build:
command: 'cargo build'
inputs:
- 'src/**/*'
- 'Cargo.toml'
build-release:
command: 'cargo build --release'
inputs:
- 'src/**/*'
- 'Cargo.toml'
test:
command: 'cargo test --all-features --release'
inputs:
- 'src/**/*'
- 'tests/**/*'
- 'Cargo.toml'
clippy:
command: 'cargo clippy --all-features -- -D warnings'
inputs:
- 'src/**/*'
- 'Cargo.toml'
fmt:
command: 'cargo fmt'
inputs:
- 'src/**/*'
options:
cache: false
fmt-check:
command: 'cargo fmt --check'
inputs:
- 'src/**/*'
check:
command: 'cargo check --all-features'
inputs:
- 'src/**/*'
- 'Cargo.toml'
doc:
command: 'cargo doc --no-deps --all-features'
inputs:
- 'src/**/*'
- 'Cargo.toml'
env:
RUSTDOCFLAGS: '--default-theme ayu'
doc-open:
command: 'cargo doc --no-deps --all-features --open'
deps: ['doc']
env:
RUSTDOCFLAGS: '--default-theme ayu'
options:
cache: false
security-audit:
command: 'cargo audit'
inputs:
- 'Cargo.lock' options:
cache: true
deny:
command: 'cargo deny check'
inputs:
- 'Cargo.lock'
- 'deny.toml'
options:
cache: true
coverage:
command: 'cargo tarpaulin --verbose --all-features --workspace --timeout 120 --out xml'
options:
cache: false
outdated:
command: 'cargo outdated'
options:
cache: false
publish-dry:
command: 'cargo publish --dry-run --allow-dirty'
deps: ['build', 'test', 'clippy', 'fmt-check']