fix(run.sh): ensure Pulumi uses virtualenv Python and auto-install SDK if missing

This commit is contained in:
Haitao Pan 2025-03-29 13:13:43 +08:00
parent 892302a5b5
commit 81410d56bc

View File

@ -161,7 +161,11 @@ pulumi_run() {
cd "$PULUMI_DIR"
# 设置 Python 虚拟环境路径
VENV_DIR="${PULUMI_DIR}/.venv"
VENV_DIR="$PROJECT_ROOT/.venv"
PYTHON_BIN="$VENV_DIR/bin/python"
# 1. 激活虚拟环境
echo "✅ 激活虚拟环境: $VENV_DIR"
# 如果没有虚拟环境就创建并安装依赖
if [ ! -d "$VENV_DIR" ]; then
@ -174,6 +178,20 @@ pulumi_run() {
source "$VENV_DIR/bin/activate"
fi
source "$VENV_DIR/bin/activate"
# 2. 确保 pulumi 安装在虚拟环境中
if ! "$PYTHON_BIN" -c "import pulumi" &> /dev/null; then
echo "⚠️ Pulumi SDK 未安装,正在安装..."
"$PYTHON_BIN" -m pip install --upgrade pip
"$PYTHON_BIN" -m pip install pulumi pulumi-aws PyYAML
else
echo "✅ Pulumi SDK 已就绪"
fi
# 3. 告诉 Pulumi 使用这个 Python
export PULUMI_PYTHON_CMD="$PYTHON_BIN"
# ✅ 明确选择 stack若不存在则创建避免交互式提示
pulumi stack select "$STACK_NAME" 2>/dev/null || pulumi stack init "$STACK_NAME"