ci: pass stdb cargo env into bash
Some checks failed
CI / verify (push) Has been cancelled

This commit is contained in:
2026-05-06 15:16:14 +08:00
parent 3ccbe6fe77
commit bc0ebe3c25

View File

@@ -72,24 +72,36 @@ pipeline {
$env:CARGO_HOME = "$env:WORKSPACE_TMP/cargo-home"
$env:CARGO_TARGET_DIR = "$env:WORKSPACE_TMP/cargo-target/prod-release"
$env:SCCACHE_DIR = "$env:USERPROFILE/.cache/sccache-stdb-module"
$env:PATH = "$env:CARGO_HOME/bin;$env:PATH"
if (-not (Get-Command bash -ErrorAction SilentlyContinue)) {
throw '[stdb-build] Windows 构建节点缺少 bash无法执行仓库现有生产构建脚本。请先安装 Git Bash 或 WSL bash并确保 bash 在 PATH 中。'
}
bash -lc '
$bashEnv = @(
"CARGO_HOME=$($env:CARGO_HOME)",
"CARGO_TARGET_DIR=$($env:CARGO_TARGET_DIR)",
"CARGO_INCREMENTAL=$($env:CARGO_INCREMENTAL)",
"RUSTC_WRAPPER=$($env:RUSTC_WRAPPER)",
"SCCACHE_DIR=$($env:SCCACHE_DIR)",
"SCCACHE_CACHE_SIZE=$($env:SCCACHE_CACHE_SIZE)",
"SOURCE_BRANCH=$($env:SOURCE_BRANCH)",
"SOURCE_COMMIT=$($env:SOURCE_COMMIT)",
"EFFECTIVE_BUILD_VERSION=$($env:EFFECTIVE_BUILD_VERSION)"
) -join ' '
bash -lc "
set -euo pipefail
export $bashEnv
chmod +x scripts/jenkins-prepare-cargo-env.sh
source scripts/jenkins-prepare-cargo-env.sh
if ! command -v cargo >/dev/null 2>&1; then
echo "[stdb-build] 缺少 cargo。请先在 Windows 构建节点安装 Rust 工具链。" >&2
echo '[stdb-build] 缺少 cargo。请先在 Windows 构建节点安装 Rust 工具链。' >&2
exit 1
fi
if ! command -v sccache >/dev/null 2>&1; then
echo "[stdb-build] 未找到 sccache改用 rustc 直接构建。"
echo '[stdb-build] 未找到 sccache改用 rustc 直接构建。'
unset RUSTC_WRAPPER
fi
SOURCE_BRANCH="${SOURCE_BRANCH}" SOURCE_COMMIT="${SOURCE_COMMIT}" \
npm run build:production-release -- --component spacetime-module --name "${EFFECTIVE_BUILD_VERSION}"
'
npm run build:production-release -- --component spacetime-module --name \"\${EFFECTIVE_BUILD_VERSION}\"
"
'''
}
}