diff --git a/.gitea/workflows/ci.yaml b/.gitea/workflows/ci.yaml index 2a2597f..844dbdd 100644 --- a/.gitea/workflows/ci.yaml +++ b/.gitea/workflows/ci.yaml @@ -117,11 +117,36 @@ jobs: run: | echo "📦 设置 pnpm 缓存目录..." export PATH=$PATH:/usr/local/bin - mkdir -p /tmp/pnpm-cache - pnpm config set store-dir /tmp/pnpm-cache - echo "缓存目录: $(pnpm store path)" - echo "缓存状态:" - pnpm store status || echo "首次运行,无缓存" + + # 尝试多个可能的挂载点 + CACHE_DIRS=("/shared/pnpm-cache" "/opt/pnpm-cache" "/mnt/pnpm-cache" "/tmp/pnpm-cache") + CACHE_DIR="" + + for dir in "${CACHE_DIRS[@]}"; do + if [ -d "$dir" ] && [ -w "$dir" ]; then + CACHE_DIR="$dir" + echo "✅ 找到可写缓存目录: $dir" + break + fi + done + + if [ -z "$CACHE_DIR" ]; then + echo "⚠️ 未找到外部缓存目录,使用临时目录" + CACHE_DIR="/tmp/pnpm-cache" + mkdir -p "$CACHE_DIR" + fi + + pnpm config set store-dir "$CACHE_DIR" + echo "使用缓存目录: $(pnpm store path)" + + # 检查缓存状态 + if [ -d "$CACHE_DIR/v10" ]; then + echo "✅ 找到外部缓存" + du -sh "$CACHE_DIR" + echo "缓存文件数量: $(find "$CACHE_DIR" -type f | wc -l)" + else + echo "📥 首次运行,无缓存" + fi - name: 缓存依赖 shell: bash @@ -132,11 +157,15 @@ jobs: # 记录开始时间 START_TIME=$(date +%s) + # 使用外部缓存时的优化 + echo "📦 使用外部缓存优化..." + pnpm config set prefer-offline true + # 检查 lockfile 是否存在 if [ -f "pnpm-lock.yaml" ]; then echo "✅ 找到 pnpm-lock.yaml,使用离线模式安装..." echo "开始时间: $(date)" - pnpm install --frozen-lockfile --prefer-offline + pnpm install --frozen-lockfile else echo "📥 未找到 lockfile,重新安装依赖..." echo "开始时间: $(date)"