From d672d5e31ab48eb0b27f83567b9d90c52eda4b36 Mon Sep 17 00:00:00 2001 From: "anthropic-code-agent[bot]" <242468646+Claude@users.noreply.github.com> Date: Fri, 13 Feb 2026 04:00:26 +0000 Subject: [PATCH 1/3] Initial plan From cf3c70b1fd8526ab3bcf0cbc7a5f4dec7a5f3e8b Mon Sep 17 00:00:00 2001 From: "anthropic-code-agent[bot]" <242468646+Claude@users.noreply.github.com> Date: Fri, 13 Feb 2026 04:02:11 +0000 Subject: [PATCH 2/3] fix: add explicit toolchain to rust setup in test workflow Co-authored-by: lpcox <15877973+lpcox@users.noreply.github.com> --- .github/workflows/test-chroot.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/test-chroot.yml b/.github/workflows/test-chroot.yml index 2f5457f52..1af4e743d 100644 --- a/.github/workflows/test-chroot.yml +++ b/.github/workflows/test-chroot.yml @@ -157,6 +157,8 @@ jobs: - name: Setup Rust uses: dtolnay/rust-toolchain@stable + with: + toolchain: stable - name: Setup Java uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v4 @@ -210,11 +212,13 @@ jobs: echo "GOROOT: $GOROOT" echo "Ruby: $(ruby --version)" echo "Gem: $(gem --version)" + echo "Bundler: $(bundle --version 2>&1 || echo 'Not installed')" echo "Rust: $(rustc --version)" echo "Cargo: $(cargo --version)" echo "CARGO_HOME: $CARGO_HOME" echo "Java: $(java --version 2>&1 | head -1)" echo "JAVA_HOME: $JAVA_HOME" + echo "Maven: $(mvn --version 2>&1 | head -1 || echo 'Not installed')" echo "dotnet: $(dotnet --version 2>&1)" echo "DOTNET_ROOT: $DOTNET_ROOT" From c9ab12b94c8010c7c2a45f78aef48f7343f9079f Mon Sep 17 00:00:00 2001 From: "anthropic-code-agent[bot]" <242468646+Claude@users.noreply.github.com> Date: Fri, 13 Feb 2026 04:03:54 +0000 Subject: [PATCH 3/3] feat: add RUSTUP_HOME environment variable support for Rust toolchain Co-authored-by: lpcox <15877973+lpcox@users.noreply.github.com> --- .github/workflows/test-chroot.yml | 7 +++++++ containers/agent/entrypoint.sh | 5 +++++ src/docker-manager.ts | 4 ++++ 3 files changed, 16 insertions(+) diff --git a/.github/workflows/test-chroot.yml b/.github/workflows/test-chroot.yml index 1af4e743d..b3ea6e4d9 100644 --- a/.github/workflows/test-chroot.yml +++ b/.github/workflows/test-chroot.yml @@ -188,6 +188,12 @@ jobs: echo "Captured CARGO_HOME: ${CARGO_HOME}" fi + # Rust: RUSTUP_HOME is needed so rustc can find the toolchain + if [ -n "$RUSTUP_HOME" ]; then + echo "RUSTUP_HOME=${RUSTUP_HOME}" >> $GITHUB_ENV + echo "Captured RUSTUP_HOME: ${RUSTUP_HOME}" + fi + # Java: JAVA_HOME is needed so entrypoint can add $JAVA_HOME/bin to PATH # The setup-java action sets JAVA_HOME but sudo may not preserve it if [ -n "$JAVA_HOME" ]; then @@ -216,6 +222,7 @@ jobs: echo "Rust: $(rustc --version)" echo "Cargo: $(cargo --version)" echo "CARGO_HOME: $CARGO_HOME" + echo "RUSTUP_HOME: $RUSTUP_HOME" echo "Java: $(java --version 2>&1 | head -1)" echo "JAVA_HOME: $JAVA_HOME" echo "Maven: $(mvn --version 2>&1 | head -1 || echo 'Not installed')" diff --git a/containers/agent/entrypoint.sh b/containers/agent/entrypoint.sh index f2f741d07..eced7d04e 100644 --- a/containers/agent/entrypoint.sh +++ b/containers/agent/entrypoint.sh @@ -292,6 +292,11 @@ AWFEOF echo "[entrypoint] Adding CARGO_HOME/bin to PATH: ${AWF_CARGO_HOME}/bin" echo "export PATH=\"${AWF_CARGO_HOME}/bin:\$PATH\"" >> "/host${SCRIPT_FILE}" echo "export CARGO_HOME=\"${AWF_CARGO_HOME}\"" >> "/host${SCRIPT_FILE}" + # Also set RUSTUP_HOME if provided (needed for rustc to find toolchain) + if [ -n "${AWF_RUSTUP_HOME}" ]; then + echo "[entrypoint] Setting RUSTUP_HOME: ${AWF_RUSTUP_HOME}" + echo "export RUSTUP_HOME=\"${AWF_RUSTUP_HOME}\"" >> "/host${SCRIPT_FILE}" + fi else # Fallback: detect Cargo from default location if CARGO_HOME not provided # This ensures Rust binaries work even when CARGO_HOME env var is not set diff --git a/src/docker-manager.ts b/src/docker-manager.ts index bdd047177..e32023a92 100644 --- a/src/docker-manager.ts +++ b/src/docker-manager.ts @@ -358,6 +358,10 @@ export function generateDockerCompose( if (process.env.CARGO_HOME) { environment.AWF_CARGO_HOME = process.env.CARGO_HOME; } + // Rust: Pass RUSTUP_HOME so rustc/cargo can find the toolchain + if (process.env.RUSTUP_HOME) { + environment.AWF_RUSTUP_HOME = process.env.RUSTUP_HOME; + } // Java: Pass JAVA_HOME so entrypoint can add $JAVA_HOME/bin to PATH and set JAVA_HOME if (process.env.JAVA_HOME) { environment.AWF_JAVA_HOME = process.env.JAVA_HOME;