fix: 优化 pnpm store 路径检测逻辑,优先使用 Docker 默认路径并调整默认配置
- clean-project-store 默认值从 true 改为 false - 移除 PNPM_VERSION 冗余赋值语句 - 优化 store 路径检测:优先检测 Docker 环境默认路径 /pnpm/store - 仅在非 Docker 环境时才使用 pnpm store path 命令获取 - 移除 PNPM_STORE_DIR 环境变量设置,仅保留输出 - 优化错误提示,明确路径检测失败的可能原因
This commit is contained in:
+16
-5
@@ -38,7 +38,7 @@ inputs:
|
||||
clean-project-store:
|
||||
description: '安装后清理项目根目录的 .pnpm-store (true/false)'
|
||||
required: false
|
||||
default: 'true'
|
||||
default: 'false'
|
||||
|
||||
outputs:
|
||||
cache-hit:
|
||||
@@ -126,7 +126,6 @@ runs:
|
||||
fi
|
||||
|
||||
# 构建缓存 key
|
||||
PNPM_VERSION="${PNPM_VERSION}"
|
||||
CACHE_KEY="${{ runner.os }}-${CACHE_PREFIX}-pnpm-v${PNPM_VERSION}-${CACHE_HASH_SHORT}"
|
||||
RESTORE_PREFIX="${{ runner.os }}-${CACHE_PREFIX}-pnpm-v${PNPM_VERSION}-"
|
||||
|
||||
@@ -148,16 +147,28 @@ runs:
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 优先级:Docker 默认路径 > pnpm store path
|
||||
STORE_DIR_CANDIDATE=""
|
||||
|
||||
# 1. 检查 Docker 环境默认路径
|
||||
if [[ -d "/pnpm/store" ]]; then
|
||||
STORE_DIR_CANDIDATE="/pnpm/store"
|
||||
echo "📝 检测到 Docker 环境,使用默认路径: $STORE_DIR_CANDIDATE"
|
||||
# 2. 通过 pnpm 命令获取
|
||||
else
|
||||
STORE_DIR_CANDIDATE=$(pnpm store path --silent 2>/dev/null | grep -v '^[[:space:]]*$' | tail -n1 | tr -d '\r\n')
|
||||
if [[ -n "$STORE_DIR_CANDIDATE" ]]; then
|
||||
echo "📝 通过 pnpm store path 获取: $STORE_DIR_CANDIDATE"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ -z "$STORE_DIR_CANDIDATE" ]]; then
|
||||
echo "❌ pnpm store path 未返回有效路径" >&2
|
||||
echo "💡 提示: 可在运行前设置 PNPM_HOME 环境变量或检查 pnpm 配置" >&2
|
||||
echo "❌ 无法确定 pnpm store 路径" >&2
|
||||
echo "💡 提示: 确保 pnpm 配置正确或检查 /pnpm/store 目录" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "📦 pnpm store 路径: $STORE_DIR_CANDIDATE"
|
||||
echo "PNPM_STORE_DIR=${STORE_DIR_CANDIDATE}" >> "$GITHUB_ENV"
|
||||
echo "path=${STORE_DIR_CANDIDATE}" >> "$GITHUB_OUTPUT"
|
||||
|
||||
- name: 拉取缓存
|
||||
|
||||
Reference in New Issue
Block a user