From 748a54873bd0e91bdb59f00ab00141d3a1b536e4 Mon Sep 17 00:00:00 2001 From: Lyda <1829913225@qq.com> Date: Fri, 3 Apr 2026 17:09:31 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BC=98=E5=8C=96=20pnpm=20store=20?= =?UTF-8?q?=E8=B7=AF=E5=BE=84=E6=A3=80=E6=B5=8B=E9=80=BB=E8=BE=91=EF=BC=8C?= =?UTF-8?q?=E4=BC=98=E5=85=88=E4=BD=BF=E7=94=A8=20Docker=20=E9=BB=98?= =?UTF-8?q?=E8=AE=A4=E8=B7=AF=E5=BE=84=E5=B9=B6=E8=B0=83=E6=95=B4=E9=BB=98?= =?UTF-8?q?=E8=AE=A4=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - clean-project-store 默认值从 true 改为 false - 移除 PNPM_VERSION 冗余赋值语句 - 优化 store 路径检测:优先检测 Docker 环境默认路径 /pnpm/store - 仅在非 Docker 环境时才使用 pnpm store path 命令获取 - 移除 PNPM_STORE_DIR 环境变量设置,仅保留输出 - 优化错误提示,明确路径检测失败的可能原因 --- pnpm-install/action.yml | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/pnpm-install/action.yml b/pnpm-install/action.yml index a3c69a6..a3b258c 100644 --- a/pnpm-install/action.yml +++ b/pnpm-install/action.yml @@ -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 - STORE_DIR_CANDIDATE=$(pnpm store path --silent 2>/dev/null | grep -v '^[[:space:]]*$' | tail -n1 | tr -d '\r\n') + # 优先级: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: 拉取缓存