Build.dependencies({"git", "make", "rustc", "cargo", "rustup"}) Step.start("crate") Step.push("build") Build.run({"cargo", "build"}) -- and now that some code is conditional on target arch, at least try to build -- for other architectures even if we might not be able to run on them. Build.run({"rustup", "target", "add", "wasm32-wasi"}) Build.run({"cargo", "build", "--no-default-features", "--target", "wasm32-wasi"}) Step.advance("test") -- TODO: set `-D warnings` here and below... 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", "alloc"}, {name="test feature combinations"}) Build.run({"cargo", "test", "--no-default-features", "--tests", "--features", "color-new"}, {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", "std,address-parse,alloc"}, {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", "use-serde,colors,address-parse,alloc"}, {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,colors,address-parse,alloc"}, {name="test feature combinations"}) Build.run({"cargo", "test", "--no-default-features", "--tests", "--features", "std,use-serde,colors"}, {name="test feature combinations"}) Build.run({"cargo", "test", "--no-default-features", "--tests", "--features", "std,use-serde,colors,alloc"}, {name="test feature combinations"}) Build.run({"cargo", "test", "--no-default-features", "--tests", "--features", "color-new,alloc"}, {name="test feature combinations"})