Build.dependencies({"git", "make", "rustc", "cargo"}) Step.start("crate") Step.push("build") Build.run({"cargo", "build"}) Step.advance("test") Build.run({"cargo", "test"}, {name="test default features"}) -- `cargo test` ends up running doc tests. great! but yaxpeax-arch's docs reference items in std only. -- so for other feature combinations, skip doc tests. do this by passing `--tests` explicitly, -- which disables the automagic "run everything" settings. Build.run({"cargo", "test", "--no-default-features", "--tests"}, {name="test no features"}) Build.run({"cargo", "test", "--no-default-features", "--tests", "--features", "std"}, {name="test std only"}) Build.run({"cargo", "test", "--no-default-features", "--tests", "--features", "colors"}, {name="test feature combinations"}) Build.run({"cargo", "test", "--no-default-features", "--tests", "--features", "use-serde"}, {name="test feature combinations"}) Build.run({"cargo", "test", "--no-default-features", "--tests", "--features", "address-parse"}, {name="test feature combinations"}) Build.run({"cargo", "test", "--no-default-features", "--tests", "--features", "std,colors"}, {name="test feature combinations"}) Build.run({"cargo", "test", "--no-default-features", "--tests", "--features", "std,use-serde"}, {name="test feature combinations"}) Build.run({"cargo", "test", "--no-default-features", "--tests", "--features", "std,address-parse"}, {name="test feature combinations"}) Build.run({"cargo", "test", "--no-default-features", "--tests", "--features", "use-serde,colors,address-parse"}, {name="test feature combinations"}) Build.run({"cargo", "test", "--no-default-features", "--tests", "--features", "std,colors,address-parse"}, {name="test feature combinations"}) Build.run({"cargo", "test", "--no-default-features", "--tests", "--features", "std,use-serde,colors"}, {name="test feature combinations"})