mirror of
https://github.com/n0-computer/noq.git
synced 2026-09-16 16:25:08 +00:00
684c3e2531
## Description This adds a `cargo make` task and CI job to ensure that no foreign crates appear in the public API apart from those explicitly allow-listed. ## Change checklist - [x] Self-review.
111 lines
3.0 KiB
TOML
111 lines
3.0 KiB
TOML
# Use cargo-make to run tasks here: https://crates.io/crates/cargo-make
|
|
|
|
[config]
|
|
skip_core_tasks = true
|
|
default_to_workspace = false
|
|
|
|
[env]
|
|
RUSTFLAGS = "-Dwarnings"
|
|
RUSTDOCFLAGS = "-Dwarnings"
|
|
CARGO_MAKE_EXTEND_WORKSPACE_MAKEFILE = true
|
|
# Workspace members to exclude when setting `workspace = true` for a task.
|
|
# Must live at global env (not task-level) so it's read before workspace iteration
|
|
# is generated. Only the `check-external-types` task uses this.
|
|
CARGO_MAKE_WORKSPACE_SKIP_MEMBERS = ["bench", "fuzz", "perf", "docs/book"]
|
|
|
|
[tasks.default]
|
|
alias = "dev-flow"
|
|
|
|
[tasks.dev-flow]
|
|
description = "Fast local sub-set of all CI checks"
|
|
dependencies = [
|
|
"format-check",
|
|
"check",
|
|
"clippy",
|
|
"doc",
|
|
"test",
|
|
"proptests-extralight",
|
|
]
|
|
|
|
|
|
[tasks.format]
|
|
description = "Format the rust files following style rules"
|
|
command = "cargo"
|
|
args = [
|
|
"fmt",
|
|
"--all",
|
|
"--",
|
|
"--config",
|
|
"unstable_features=true",
|
|
"--config",
|
|
"imports_granularity=Crate,group_imports=Preserve,reorder_imports=false,format_code_in_doc_comments=true",
|
|
]
|
|
|
|
[tasks.format-check]
|
|
description = "Check the rust files for formatting style"
|
|
command = "cargo"
|
|
args = [
|
|
"fmt",
|
|
"--all",
|
|
"--check",
|
|
"--",
|
|
"--config",
|
|
"unstable_features=true",
|
|
"--config",
|
|
"imports_granularity=Crate,group_imports=Preserve,reorder_imports=false,format_code_in_doc_comments=true",
|
|
]
|
|
|
|
[tasks.check]
|
|
description = "Run cargo-check for entire project"
|
|
command = "cargo"
|
|
args = ["check", "--workspace", "--all-features", "--all-targets"]
|
|
|
|
[tasks.clippy]
|
|
description = "Run cargo-clippy for entire project"
|
|
command = "cargo"
|
|
args = ["clippy", "--workspace", "--all-features", "--all-targets"]
|
|
|
|
[tasks.doc]
|
|
description = "Check the documentation build"
|
|
command = "cargo"
|
|
args = ["doc", "--workspace", "--all-features", "--no-deps", "--document-private-items"]
|
|
|
|
[tasks.test]
|
|
description = "Run unit tests"
|
|
command = "cargo"
|
|
args = [
|
|
"nextest",
|
|
"run",
|
|
"--workspace",
|
|
"--all-features",
|
|
"--exclude=fuzz",
|
|
"--lib",
|
|
"--bins",
|
|
"--tests",
|
|
"--no-fail-fast",
|
|
]
|
|
|
|
[tasks.proptests-long]
|
|
description = "Run proptests with high case count (runs for ~10 minutes)"
|
|
command = "cargo"
|
|
args = ["nextest", "run", "--package=noq-proto", "-P", "proptests", "--cargo-profile=proptests", "--no-fail-fast", "${@}"]
|
|
env = { "PROPTEST_CASES" = "100000" }
|
|
|
|
[tasks.proptests-light]
|
|
description = "Run proptests for CI (~1 minute)"
|
|
command = "cargo"
|
|
args = ["nextest", "run", "--package=noq-proto", "-P", "proptests", "--cargo-profile=proptests", "--no-fail-fast", "${@}"]
|
|
env = { "PROPTEST_CASES" = "10000" }
|
|
|
|
[tasks.proptests-extralight]
|
|
description = "Run proptests in regression-only mode (runs for <5 seconds)"
|
|
command = "cargo"
|
|
args = ["nextest", "run", "--package=noq-proto", "-P", "proptests", "--no-fail-fast", "${@}"]
|
|
|
|
[tasks.check-external-types]
|
|
description = "Run cargo check-external-types on workspace crates"
|
|
workspace = true
|
|
toolchain = "${TOOLCHAIN:nightly-2025-10-18}"
|
|
command = "cargo"
|
|
args = ["check-external-types", "--features", "__all_without_fips"]
|