From a8958ca72813dc7118a6149bf16b1011f461e9e9 Mon Sep 17 00:00:00 2001 From: Chummy Date: Tue, 3 Mar 2026 09:00:20 +0800 Subject: [PATCH] fix(ci): pin shell execution to /bin/sh for runtime and tests --- src/cron/scheduler.rs | 2 +- src/service/mod.rs | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/cron/scheduler.rs b/src/cron/scheduler.rs index 142151d20..03df2ee45 100644 --- a/src/cron/scheduler.rs +++ b/src/cron/scheduler.rs @@ -579,7 +579,7 @@ async fn run_job_command_with_timeout( ); } - let mut command = Command::new("sh"); + let mut command = Command::new("/bin/sh"); command .arg("-lc") .arg(&job.command) diff --git a/src/service/mod.rs b/src/service/mod.rs index e6baeb54c..0ff11ac8f 100644 --- a/src/service/mod.rs +++ b/src/service/mod.rs @@ -1164,7 +1164,7 @@ mod tests { #[cfg(not(target_os = "windows"))] #[test] fn run_capture_reads_stdout() { - let out = run_capture(Command::new("sh").args(["-lc", "echo hello"])) + let out = run_capture(Command::new("/bin/sh").args(["-lc", "echo hello"])) .expect("stdout capture should succeed"); assert_eq!(out.trim(), "hello"); } @@ -1172,7 +1172,7 @@ mod tests { #[cfg(not(target_os = "windows"))] #[test] fn run_capture_falls_back_to_stderr() { - let out = run_capture(Command::new("sh").args(["-lc", "echo warn 1>&2"])) + let out = run_capture(Command::new("/bin/sh").args(["-lc", "echo warn 1>&2"])) .expect("stderr capture should succeed"); assert_eq!(out.trim(), "warn"); } @@ -1180,7 +1180,7 @@ mod tests { #[cfg(not(target_os = "windows"))] #[test] fn run_checked_errors_on_non_zero_status() { - let err = run_checked(Command::new("sh").args(["-lc", "exit 17"])) + let err = run_checked(Command::new("/bin/sh").args(["-lc", "exit 17"])) .expect_err("non-zero exit should error"); assert!(err.to_string().contains("Command failed")); }