if not Build.environment.has("rustup") then Build.error("i don't know i want to handle dependencies yet") end Build.artifact("src/lib.rs") Build.metric( "nightly version", "rustc --version" ) Build.run({"cargo", "build"}, {step="build"}) -- `run` automatically records stdout and stderr to log files named after the command Build.run({"cargo", "test"}, {step="test", name="test stdlib/fmt"}) -- artifacts are stored under `name` if that's present Build.run({"cargo", "test", "--no-default-features"}, {step="test", name="test nostdlib/nofmt"}) Build.run({"cargo", "test", "--no-default-features", "--features", "fmt"}, {step="test", name="test nostdlib/fmt"}) Build.run({"cargo", "+nightly", "build", "-Z", "build-std", "--release", "--no-default-features", "--target", "x86_64-unknown-linux-gnu"}, {step="ffi_build", cwd="ffi/"}) sopath = "ffi/target/x86_64-unknown-linux-gnu/release/libyaxpeax_x86_ffi_long_mode.so" Build.run({"ls", sopath}, {step="ffi_validate"}) Build.metric( "libyaxpeax_x86_ffi_long_mode.so size (bytes)", Build.environment.size(sopath) ) Build.artifact(sopath)