Development tasks for rustic.
You can run this file with mask.
Install mask with cargo install mask.
Checks the library for syntax and HIR errors.
Bash:
cargo check --no-default-features \
&& cargo check --all-featuresPowerShell:
[Diagnostics.Process]::Start("cargo", "check --no-default-features").WaitForExit()
[Diagnostics.Process]::Start("cargo", "cargo check --all-features").WaitForExit()Continually runs the development routines.
Bash:
mask loop devPowerShell:
[Diagnostics.Process]::Start("mask", "loop dev").WaitForExit()Removes all build artifacts.
Bash:
cargo cleanPowerShell:
[Diagnostics.Process]::Start("cargo", "clean").WaitForExit()Runs the development routines
Bash:
$MASK format \
&& $MASK lint \
&& $MASK test \
&& $MASK docPowerShell:
[Diagnostics.Process]::Start("mask", "format").WaitForExit()
[Diagnostics.Process]::Start("mask", "lint").WaitForExit()
[Diagnostics.Process]::Start("mask", "test").WaitForExit()
[Diagnostics.Process]::Start("mask", "doc").WaitForExit()Opens the crate documentation
Bash:
cargo doc --all-features --no-deps --open $cratePowerShell:
[Diagnostics.Process]::Start("cargo", "doc --all-features --no-deps --open $crate").WaitForExit()Run formatters on the repository.
Runs the formatter on all Rust files.
Bash:
cargo fmt --allPowerShell:
[Diagnostics.Process]::Start("cargo", "fmt --all").WaitForExit()Runs the formatter on md, json, and toml files
Bash:
dprint fmtPowerShell:
[Diagnostics.Process]::Start("dprint", "fmt").WaitForExit()Runs all the formatters.
Bash:
$MASK format cargo \
&& $MASK format dprintPowerShell:
[Diagnostics.Process]::Start("mask", "format cargo").WaitForExit()
[Diagnostics.Process]::Start("mask", "format dprint").WaitForExit()Lists all crates that depend on the given crate
Bash:
cargo tree -e features -i $cratePowerShell:
[Diagnostics.Process]::Start("cargo", "tree -e features -i $crate").WaitForExit()Runs the linter
Bash:
$MASK check \
&& cargo clippy --no-default-features -- -D warnings \
&& cargo clippy --all-features -- -D warningsPowerShell:
[Diagnostics.Process]::Start("mask", "check").WaitForExit()
[Diagnostics.Process]::Start("cargo", "clippy --no-default-features -- -D warnings").WaitForExit()
[Diagnostics.Process]::Start("cargo", "clippy --all-features -- -D warnings").WaitForExit()Continually runs some recipe from this file.
Bash:
watchexec -w src -- "$MASK $action"PowerShell:
[Diagnostics.Process]::Start("watchexec", "-w src -- $MASK $action).WaitForExit()Looks for undefined behavior in the (non-doc) test suite.
NOTE: This requires the nightly toolchain.
Bash:
cargo +nightly miri test --all-features -q --lib --tests $testsPowerShell:
[Diagnostics.Process]::Start("cargo", "+nightly miri test --all-features -q --lib --tests $tests").WaitForExit()Runs the whole test suite with nextest.
Runs the whole test suite with nextest on the workspace, including ignored tests.
Bash:
cargo nextest run -r --all-features --workspace -- --ignoredPowerShell:
[Diagnostics.Process]::Start("cargo", "nextest run -r --all-features --workspace -- --ignored").WaitForExit()Runs the whole test suite with nextest on the workspace.
Bash:
cargo nextest run -r --all-features --workspacePowerShell:
[Diagnostics.Process]::Start("cargo", "nextest run -r --all-features --workspace").WaitForExit()Runs a single test with nextest.
- test
- flags: -t, --test
- type: string
- desc: Only run the specified test target
- required
Bash:
cargo nextest run -r --all-features -E "test($test)"PowerShell:
[Diagnostics.Process]::Start("cargo", "nextest run -r --all-features -E 'test($test)'").WaitForExit()Prepare a Contribution/Pull request and run necessary checks and lints
Bash:
$MASK fmt \
&& $MASK test \
&& $MASK lintPowerShell:
[Diagnostics.Process]::Start("mask", "fmt").WaitForExit()
[Diagnostics.Process]::Start("mask", "test").WaitForExit()
[Diagnostics.Process]::Start("mask", "lint").WaitForExit()Runs the test suites.
Bash:
$MASK check \
&& $MASK lint
&& cargo test --all-featuresPowerShell:
[Diagnostics.Process]::Start("mask", "check").WaitForExit()
[Diagnostics.Process]::Start("mask", "lint").WaitForExit()
[Diagnostics.Process]::Start("cargo", "test --all-features").WaitForExit()Run a restic test against the server
Bash:
export RESTIC_REPOSITORY=rest:http://127.0.0.1:8000/ci_repo
export RESTIC_PASSWORD=restic
export RESTIC_REST_USERNAME=restic
export RESTIC_REST_PASSWORD=restic
restic init
restic backup tests/fixtures/test_data/test_repo_source
restic backup tests/fixtures/test_data/test_repo_source
restic check
restic forget --keep-last 1 --prunePowerShell:
$env:RESTIC_REPOSITORY = "rest:http://127.0.0.1:8000/ci_repo";
$env:RESTIC_PASSWORD = "restic";
$env:RESTIC_REST_USERNAME = "restic";
$env:RESTIC_REST_PASSWORD = "restic";
restic init
restic backup tests/fixtures/test_data/test_repo_source
restic backup tests/fixtures/test_data/test_repo_source
restic check
restic forget --keep-last 1 --pruneRun our server for testing
Bash:
cargo run -- serve -c tests/fixtures/test_data/rustic_server.toml -vPowerShell:
[Diagnostics.Process]::Start("cargo", "run -- serve -c tests/fixtures/test_data/rustic_server.toml -v").WaitForExit()Run a restic server for testing
Bash:
tests/fixtures/rest_server/rest-server.exe --path ./tests/generated/test_storage/ --htpasswd-file ./tests/fixtures/test_data/.htpasswd --log ./tests/fixtures/rest_server/response2.logPowerShell:
[Diagnostics.Process]::Start(".\\tests\\fixtures\\rest_server\\rest-server.exe", "--path .\\tests\\generated\\test_storage\\ --htpasswd-file .\\tests\\fixtures\\test_data\\.htpasswd --log .\\tests\\fixtures\\rest_server\\response2.log").WaitForExit()Run our server for testing in a loop
PowerShell:
watchexec --stop-signal "CTRL+C" -r -w src -w tests -- "cargo run -- serve -c tests/fixtures/test_data/rustic_server.toml -v"Run a hurl test against the server
Bash:
hurl -i tests/fixtures/hurl/endpoints.hurlPowerShell:
hurl -i tests/fixtures/hurl/endpoints.hurlRun a single test with debug output
OPTIONS
-
name
- flags: -n --name
- type: string
- desc: Which test to run
-
domain
- flags: -d --domain
- type: string
- desc: Which domain to ping
- required
Bash:
echo $name
RUST_LOG="debug"; cargo test --package rustic_server --lib -- $test --exact --nocapture --show-outputPowerShell:
$env:RUST_LOG="debug"; cargo test --package rustic_server --lib -- $test --exact --nocapture --show-output