From 9c11f2ed3f905fd119230846b37b69000fb29769 Mon Sep 17 00:00:00 2001 From: Nils Andreas Svee Date: Sat, 21 Feb 2026 14:08:24 +0700 Subject: [PATCH] ci: Configures cross-compilation for Rust Configures the Rust build environment for cross-compilation within the CI pipeline by setting CARGO_HOME, adding local bin to PATH, and copying the linker configuration from the image. This ensures the build process uses the correct linker settings for the target architecture. --- Jenkinsfile | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 3a50842..8769c07 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -22,10 +22,30 @@ pipeline { stage('Build') { steps { sh ''' + # 1. Set CARGO_HOME to a writable directory in the workspace export CARGO_HOME="$(pwd)/.cargo" - cargo build \ - --release - ''' + mkdir -p "$CARGO_HOME" + + # 2. Add local bin to PATH (for tools you might install) + export PATH="$(pwd)/.local/bin:${PATH}" + + # 3. CRITICAL: Copy the cross-compilation config from the image's default location + # The image stores the linker configuration in /root/.cargo/config.toml. + # Without this, Cargo defaults to the host linker (cc) and fails. + if [ -f /root/.cargo/config.toml ]; then + cp /root/.cargo/config.toml "$CARGO_HOME/config.toml" + else + echo "WARNING: /root/.cargo/config.toml not found. Build may fail." + fi + + # 4. Debug: Verify the config is present and correct + echo "--- Active Cargo Configuration ---" + cat "$CARGO_HOME/config.toml" + echo "----------------------------------" + + # 5. Build + cargo build --release + ''' } }