1[config]
2min_version = "0.35.0"
3
4[env]
5CI_CARGO_TEST_FLAGS = { value = "--locked -- --nocapture", condition = { env_true = [
6    "CARGO_MAKE_CI",
7] } }
8CARGO_MAKE_CARGO_ALL_FEATURES = { source = "${CARGO_MAKE_RUST_CHANNEL}", default_value = "--features=std,serde,num-traits,bytemuck,zerocopy", mapping = { "nightly" = "--all-features" } }
9CARGO_MAKE_CLIPPY_ARGS = { value = "${CARGO_MAKE_CLIPPY_ALL_FEATURES_WARN}", condition = { env_true = [
10    "CARGO_MAKE_CI",
11] } }
12
13# Override for CI flag additions
14[tasks.test]
15args = [
16    "test",
17    "@@remove-empty(CARGO_MAKE_CARGO_VERBOSE_FLAGS)",
18    "@@split(CARGO_MAKE_CARGO_BUILD_TEST_FLAGS, )",
19    "@@split(CI_CARGO_TEST_FLAGS, )",
20]
21
22# Let clippy run on non-nightly CI
23[tasks.clippy-ci-flow]
24condition = { env_set = ["CARGO_MAKE_RUN_CLIPPY"] }
25
26# Let format check run on non-nightly CI
27[tasks.check-format-ci-flow]
28condition = { env_set = ["CARGO_MAKE_RUN_CHECK_FORMAT"] }
29
30[tasks.check-docs]
31description = "Checks docs for errors."
32category = "Documentation"
33install_crate = false
34env = { RUSTDOCFLAGS = "-D warnings" }
35command = "cargo"
36args = [
37    "doc",
38    "--workspace",
39    "--no-deps",
40    "@@remove-empty(CARGO_MAKE_CARGO_VERBOSE_FLAGS)",
41    "${CARGO_MAKE_CARGO_ALL_FEATURES}",
42]
43
44# Build & Test with no features enabled
45[tasks.post-ci-flow]
46run_task = [{ name = ["check-docs", "build-no-std", "test-no-std"] }]
47
48[tasks.build-no-std]
49description = "Build without any features"
50category = "Build"
51env = { CARGO_MAKE_CARGO_BUILD_TEST_FLAGS = "--no-default-features" }
52run_task = "build"
53
54[tasks.test-no-std]
55description = "Run tests without any features"
56category = "Test"
57env = { CARGO_MAKE_CARGO_BUILD_TEST_FLAGS = "--no-default-features" }
58run_task = "test"
59