From 8713a5119bdea9d2322a5f7bd7ec6e50515309bb Mon Sep 17 00:00:00 2001 From: kdletters Date: Mon, 1 Jun 2026 09:43:52 +0000 Subject: [PATCH] fix: isolate Jenkins sccache by job --- scripts/jenkins-prepare-cargo-env.sh | 37 +++++++++++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) diff --git a/scripts/jenkins-prepare-cargo-env.sh b/scripts/jenkins-prepare-cargo-env.sh index c9d51991..3a21cbf9 100644 --- a/scripts/jenkins-prepare-cargo-env.sh +++ b/scripts/jenkins-prepare-cargo-env.sh @@ -8,6 +8,16 @@ set -euo pipefail ORIGINAL_HOME="${HOME:-}" CARGO_BUILD_HOME="${CARGO_BUILD_HOME:-$(dirname "${CARGO_HOME}")/home}" +USER_CARGO_CONFIG="" +WORKSPACE_TMP_ROOT="${WORKSPACE_TMP:-}" +if [[ -z "${WORKSPACE_TMP_ROOT}" && -n "${WORKSPACE:-}" ]]; then + WORKSPACE_TMP_ROOT="${WORKSPACE}@tmp" +fi +if [[ -z "${WORKSPACE_TMP_ROOT}" ]]; then + WORKSPACE_TMP_ROOT="${CARGO_BUILD_HOME}" +fi +SCCACHE_SERVER_UDS="${SCCACHE_SERVER_UDS:-${WORKSPACE_TMP_ROOT}/sccache.sock}" +SCCACHE_IDLE_TIMEOUT="${SCCACHE_IDLE_TIMEOUT:-0}" mkdir -p "${CARGO_HOME}" "${CARGO_TARGET_DIR}" "${SCCACHE_DIR}" "${CARGO_BUILD_HOME}" @@ -25,20 +35,45 @@ for tool_dir in "${ORIGINAL_HOME}/.cargo/bin" /root/.cargo/bin /usr/local/cargo/ fi done +for candidate in \ + "${ORIGINAL_HOME}/.cargo/config.toml" \ + "${ORIGINAL_HOME}/.cargo/config" \ + "/data/jenkins/.cargo/config.toml" \ + "/data/jenkins/.cargo/config" \ + "/etc/cargo/config.toml" \ + "/etc/cargo/config" +do + if [[ -f "${candidate}" ]]; then + USER_CARGO_CONFIG="${candidate}" + break + fi +done + export HOME="${CARGO_BUILD_HOME}" export CARGO_HOME export CARGO_TARGET_DIR export SCCACHE_DIR +export SCCACHE_SERVER_UDS +export SCCACHE_IDLE_TIMEOUT -cat >"${CARGO_HOME}/config.toml" <<'CARGO_CONFIG' +if [[ -n "${USER_CARGO_CONFIG}" ]]; then + install -m 0644 "${USER_CARGO_CONFIG}" "${CARGO_HOME}/config.toml" +else + cat >"${CARGO_HOME}/config.toml" <<'CARGO_CONFIG' [registries.crates-io] protocol = "sparse" CARGO_CONFIG +fi echo "[cargo-env] HOME=${HOME}" echo "[cargo-env] CARGO_HOME=${CARGO_HOME}" echo "[cargo-env] CARGO_TARGET_DIR=${CARGO_TARGET_DIR}" echo "[cargo-env] SCCACHE_DIR=${SCCACHE_DIR}" +echo "[cargo-env] SCCACHE_SERVER_UDS=${SCCACHE_SERVER_UDS}" +echo "[cargo-env] SCCACHE_IDLE_TIMEOUT=${SCCACHE_IDLE_TIMEOUT}" +if [[ -n "${USER_CARGO_CONFIG}" ]]; then + echo "[cargo-env] USER_CARGO_CONFIG=${USER_CARGO_CONFIG}" +fi if [[ -n "${RUSTUP_HOME:-}" ]]; then echo "[cargo-env] RUSTUP_HOME=${RUSTUP_HOME}" fi