Compare commits

...

2 Commits

View File

@@ -217,16 +217,13 @@ runs:
# node_modules 模式:不要回退到 cache-path那是 node_modules 目录),而是使用 RUNNER_TEMP/HOME
export PNPM_STORE_DIR="${PNPM_STORE_DIR:-${RUNNER_TEMP:-$HOME}/.pnpm-store}"
fi
# 通过多通道环境变量覆盖(兼容不同版本/解析顺序)
export npm_config_store_dir="${PNPM_STORE_DIR}"
export PNPM_CONFIG_STORE_DIR="${PNPM_STORE_DIR}"
echo "🧩 已设置 PNPM_STORE_DIR=${PNPM_STORE_DIR}"
echo "🔎 pnpm 配置: store-dir=$(pnpm config get store-dir || echo '<unknown>')"
fi
# 可选清理:如启用并发现项目根存在残留的 .pnpm-store且与目标目录不同则清理
if [[ "${{ inputs.package-manager }}" == "pnpm" && "${{ inputs.clean-project-store }}" == "true" ]]; then
if [[ -d ".pnpm-store" && "${PNPM_STORE_DIR}" != "$PWD/.pnpm-store" ]]; then
echo "🧹 清理项目根的残留 .pnpm-store目标store为 ${PNPM_STORE_DIR}"
rm -rf .pnpm-store || true
fi
fi
# 如果提供了自定义安装命令,使用自定义命令
if [[ -n "${{ inputs.install-command }}" ]]; then
echo "🔧 使用自定义安装命令: ${{ inputs.install-command }}"
@@ -283,6 +280,16 @@ runs:
;;
esac
fi
# 可选清理:如启用并发现项目根存在残留的 .pnpm-store且与目标目录不同则清理
if [[ "${{ inputs.package-manager }}" == "pnpm" && "${{ inputs.clean-project-store }}" == "true" ]]; then
# 进一步在项目级设置覆盖一次,杜绝 .npmrc 相对路径带来的影响(仅对本 CI 工作目录生效)
pnpm config set store-dir "${PNPM_STORE_DIR}" --location=project || true
if [[ -d ".pnpm-store" && "${PNPM_STORE_DIR}" != "$PWD/.pnpm-store" ]]; then
echo "🧹 清理项目根的残留 .pnpm-store目标store为 ${PNPM_STORE_DIR}"
rm -rf .pnpm-store || true
fi
fi
echo "✅ 依赖安装完成"
@@ -305,3 +312,22 @@ runs:
echo " - 强制安装: ${{ inputs.force-install }}"
echo " - Git Stash: ${{ inputs.enable-git-stash }}"
fi
# 诊断工作目录是否存在 .pnpm-store 以及其 Git 状态
echo "\n🧪 目录状态自检:"
echo " - PNPM_STORE_DIR: ${PNPM_STORE_DIR:-<unset>}"
if [[ -d ".pnpm-store" ]]; then
echo " - 工作目录存在 .pnpm-store 目录"
if git rev-parse --git-dir >/dev/null 2>&1; then
if git ls-files --error-unmatch .pnpm-store >/dev/null 2>&1; then
echo " - Git 状态: 已被跟踪 (tracked)"
elif git check-ignore -q .pnpm-store; then
echo " - Git 状态: 被忽略 (ignored)"
else
echo " - Git 状态: 未跟踪 (untracked)"
fi
else
echo " - Git 仓库: 未检测到 (非 Git 工作目录)"
fi
else
echo " - 工作目录未发现 .pnpm-store 目录 ✅"
fi