version: "3"
tasks:
release:
desc: build and publish release
cmds:
- test {{.CLI_ARGS}}
- grep -F '"{{.CLI_ARGS}}"' Cargo.toml
- cargo publish
- git tag {{.CLI_ARGS}}
- git push
- git push --tags
- gh release create --generate-notes {{.CLI_ARGS}}
format:
desc: run code formatters
cmds:
- cargo fmt
test:
desc: run tests
cmds:
- cargo test
test-cov:
desc: run tests with coverage report, requires llvm-cov
cmds:
- cargo llvm-cov test
- cargo llvm-cov report --cobertura --output-path coverage.xml
- cargo llvm-cov report --fail-under-lines 85
lint:
desc: run linters
cmds:
- cargo clippy
all:
cmds:
- task: format
- task: lint
- task: test
default:
- task: all