version: "3"
env:
SELF: task {{ .ALIAS | default .TASK }} --
tasks:
integration-test:
desc: Runs integration tests.
cmd: tests/integration/scripts/run.sh
ci:
desc: Runs all CI checks.
cmds:
- task: lint:deps
- cargo fmt --check
- cargo clippy
- cargo build --locked
- cargo test --locked
- tests/integration/scripts/run.sh
changelog:prepare:
desc: Prepares changelog entries for the next release.
cmd: ./scripts/changelog_prepare.sh {{.CLI_ARGS}}
release:
desc: Makes a new release (git tag). CD will build and release the binary.
silent: true
cmd: ./scripts/make_release.sh {{ .CLI_ARGS }}
lint:deps:
desc: Lints the dependency graph (checks for advisories, unwanted licenses, untrusted sources…).
cmd: cargo deny check --show-stats
preconditions:
- sh: command -v cargo-deny >/dev/null
msg: "`cargo deny` is required. Install using `cargo install cargo-deny --locked`."
lint:md:
desc: Lints Markdown files. You can pass a rule name to check it individually.
aliases: [lint:md:*]
silent: true
cmd: markdownlint-cli2 '**/*.md' '!target' '!tests/integration/runner' '!LICENSE.md' 2>&1{{ if .MATCH }} | { ! grep {{ index .MATCH 0 }}; }{{ end }}
preconditions:
- sh: command -v markdownlint-cli2 >/dev/null
msg: "`markdownlint-cli2` is required. See <https://github.com/DavidAnson/markdownlint-cli2#install>."