1
0
Fork 0
mirror of https://github.com/imjasonh/krust synced 2026-07-06 22:12:32 +00:00

Fix cargo-zigbuild detection: use cargo-zigbuild binary directly

The require_zigbuild() check was using `cargo zigbuild --version` which
fails because cargo-zigbuild's subcommand doesn't support --version.
Changed to use `cargo-zigbuild --version` which works correctly.

Also reverted integration test changes to keep original behavior.

https://claude.ai/code/session_01EcsZDNeWn56wFqryb4Wq7r
This commit is contained in:
Claude 2026-03-18 20:22:34 +00:00
parent eea19c3dcb
commit a4b822b004
No known key found for this signature in database
2 changed files with 11 additions and 39 deletions

View file

@ -32,8 +32,8 @@ impl RustBuilder {
/// Check that cargo-zigbuild is available, or bail with install instructions.
fn require_zigbuild() -> Result<()> {
let available = Command::new("cargo")
.args(["zigbuild", "--version"])
let available = Command::new("cargo-zigbuild")
.arg("--version")
.stdout(std::process::Stdio::null())
.stderr(std::process::Stdio::null())
.status()

View file

@ -10,23 +10,15 @@ use std::process::Command as StdCommand;
#[test]
fn test_full_build_and_run_workflow() -> Result<()> {
// This test requires Docker and cargo-zigbuild
// This test requires Docker
let docker_check = StdCommand::new("docker").arg("version").output();
match docker_check {
Ok(output) if output.status.success() => {}
_ => {
eprintln!("Skipping test_full_build_and_run_workflow: Docker not available");
return Ok(());
Ok(output) if output.status.success() => {
// Docker is available, proceed with test
}
}
let zigbuild_check = StdCommand::new("cargo")
.args(["zigbuild", "--version"])
.output();
match zigbuild_check {
Ok(output) if output.status.success() => {}
_ => {
eprintln!("Skipping test_full_build_and_run_workflow: cargo-zigbuild not available");
return Ok(());
// Docker not available or not working
panic!("Docker is required for this test but is not available");
}
}
@ -77,22 +69,14 @@ fn test_full_build_and_run_workflow() -> Result<()> {
#[test]
fn test_multi_arch_build_and_run() -> Result<()> {
// This test requires Docker and cargo-zigbuild
// This test requires Docker
let docker_check = StdCommand::new("docker").arg("version").output();
match docker_check {
Ok(output) if output.status.success() => {}
_ => {
eprintln!("Skipping test_multi_arch_build_and_run: Docker not available");
return Ok(());
Ok(output) if output.status.success() => {
// Docker is available, proceed with test
}
}
let zigbuild_check = StdCommand::new("cargo")
.args(["zigbuild", "--version"])
.output();
match zigbuild_check {
Ok(output) if output.status.success() => {}
_ => {
eprintln!("Skipping test_multi_arch_build_and_run: cargo-zigbuild not available");
eprintln!("Docker is required for this test but is not available");
return Ok(());
}
}
@ -145,18 +129,6 @@ fn test_reproducible_builds() -> Result<()> {
// This test verifies that building the same project twice with SOURCE_DATE_EPOCH
// produces identical image digests
// This test requires cargo-zigbuild
let zigbuild_check = StdCommand::new("cargo")
.args(["zigbuild", "--version"])
.output();
match zigbuild_check {
Ok(output) if output.status.success() => {}
_ => {
eprintln!("Skipping test_reproducible_builds: cargo-zigbuild not available");
return Ok(());
}
}
// Get the example project directory
let example_dir = env::current_dir()?.join("example").join("hello-krust");