fix: isolate Jenkins sccache by job
This commit is contained in:
@@ -8,6 +8,16 @@ set -euo pipefail
|
|||||||
|
|
||||||
ORIGINAL_HOME="${HOME:-}"
|
ORIGINAL_HOME="${HOME:-}"
|
||||||
CARGO_BUILD_HOME="${CARGO_BUILD_HOME:-$(dirname "${CARGO_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}"
|
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
|
fi
|
||||||
done
|
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 HOME="${CARGO_BUILD_HOME}"
|
||||||
export CARGO_HOME
|
export CARGO_HOME
|
||||||
export CARGO_TARGET_DIR
|
export CARGO_TARGET_DIR
|
||||||
export SCCACHE_DIR
|
export SCCACHE_DIR
|
||||||
|
export SCCACHE_SERVER_UDS
|
||||||
|
export SCCACHE_IDLE_TIMEOUT
|
||||||
|
|
||||||
|
if [[ -n "${USER_CARGO_CONFIG}" ]]; then
|
||||||
|
install -m 0644 "${USER_CARGO_CONFIG}" "${CARGO_HOME}/config.toml"
|
||||||
|
else
|
||||||
cat >"${CARGO_HOME}/config.toml" <<'CARGO_CONFIG'
|
cat >"${CARGO_HOME}/config.toml" <<'CARGO_CONFIG'
|
||||||
[registries.crates-io]
|
[registries.crates-io]
|
||||||
protocol = "sparse"
|
protocol = "sparse"
|
||||||
CARGO_CONFIG
|
CARGO_CONFIG
|
||||||
|
fi
|
||||||
|
|
||||||
echo "[cargo-env] HOME=${HOME}"
|
echo "[cargo-env] HOME=${HOME}"
|
||||||
echo "[cargo-env] CARGO_HOME=${CARGO_HOME}"
|
echo "[cargo-env] CARGO_HOME=${CARGO_HOME}"
|
||||||
echo "[cargo-env] CARGO_TARGET_DIR=${CARGO_TARGET_DIR}"
|
echo "[cargo-env] CARGO_TARGET_DIR=${CARGO_TARGET_DIR}"
|
||||||
echo "[cargo-env] SCCACHE_DIR=${SCCACHE_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
|
if [[ -n "${RUSTUP_HOME:-}" ]]; then
|
||||||
echo "[cargo-env] RUSTUP_HOME=${RUSTUP_HOME}"
|
echo "[cargo-env] RUSTUP_HOME=${RUSTUP_HOME}"
|
||||||
fi
|
fi
|
||||||
|
|||||||
Reference in New Issue
Block a user