diff --git a/.gitea/workflows/ci.yaml b/.gitea/workflows/ci.yaml index 5fdfd6d..ad8ad06 100644 --- a/.gitea/workflows/ci.yaml +++ b/.gitea/workflows/ci.yaml @@ -111,130 +111,17 @@ jobs: npm install -g pnpm echo "✅ pnpm安装完成: $(pnpm --version)" fi - - name: Cache node modules - uses: actions/cache@v3 - with: - path: node_modules - key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} - restore-keys: | - ${{ runner.os }}-node- - - name: 设置 pnpm 缓存目录 + - name: 安装依赖 shell: bash run: | - echo "📦 设置 pnpm 缓存目录..." + echo "📦 开始安装依赖..." export PATH=$PATH:/usr/local/bin - - # 检查挂载点 - echo "🔍 检查挂载点状态..." - CACHE_DIR="/shared/pnpm-cache" - echo "检查目录: $CACHE_DIR" - - # 强制创建目录(如果挂载存在但目录为空) - mkdir -p "$CACHE_DIR" - - if [ -d "$CACHE_DIR" ]; then - echo " ✅ 目录存在" - ls -la "$CACHE_DIR" | head -5 - if [ -w "$CACHE_DIR" ]; then - echo " ✅ 目录可写" - else - echo " ❌ 目录不可写,尝试修复权限" - chmod 777 "$CACHE_DIR" 2>/dev/null || echo " 无法修复权限" - if [ -w "$CACHE_DIR" ]; then - echo " ✅ 权限修复成功" - else - echo " ❌ 权限修复失败" - CACHE_DIR="" - fi - fi - else - echo " ❌ 目录不存在" - CACHE_DIR="" - fi - - if [ -z "$CACHE_DIR" ]; then - echo "⚠️ 未找到外部缓存目录,使用临时目录" - CACHE_DIR="/tmp/pnpm-cache" - mkdir -p "$CACHE_DIR" - else - echo "✅ 使用外部缓存目录: $CACHE_DIR" - fi - - # 强制设置缓存目录,覆盖 .npmrc 中的配置 - pnpm config set store-dir "$CACHE_DIR" --global - pnpm config set cache-dir "$CACHE_DIR" --global - echo "配置的缓存目录: $CACHE_DIR" - echo "pnpm 实际缓存目录: $(pnpm store path)" - - # 验证配置是否生效 - echo "验证 pnpm 配置:" - echo "store-dir: $(pnpm config get store-dir)" - echo "cache-dir: $(pnpm config get cache-dir)" - - # 测试挂载是否工作 - echo "🧪 测试挂载功能..." - TEST_FILE="$CACHE_DIR/test-mount.txt" - echo "测试时间: $(date)" > "$TEST_FILE" - if [ -f "$TEST_FILE" ]; then - echo "✅ 挂载测试成功,文件写入正常" - rm "$TEST_FILE" - else - echo "❌ 挂载测试失败,无法写入文件" - fi - - # 检查缓存状态 - if [ -d "$CACHE_DIR/v10" ]; then - echo "✅ 找到外部缓存" - du -sh "$CACHE_DIR" - echo "缓存文件数量: $(find "$CACHE_DIR" -type f | wc -l)" - else - echo "📥 首次运行,无缓存" - fi - - - name: 检测 pnpm 缓存目录是否为持久化挂载 - shell: bash - run: | - echo "🔍 检测 $CACHE_DIR 是否为持久化挂载..." - CACHE_DIR="/shared/pnpm-cache" - if mountpoint -q "$CACHE_DIR"; then - echo "✅ $CACHE_DIR 是挂载点(持久化卷)" - else - echo "⚠️ $CACHE_DIR 不是挂载点,可能不是持久化卷" - fi - echo "挂载信息:" - df -h "$CACHE_DIR" || true - mount | grep "$CACHE_DIR" || true - - - name: 输出 pnpm 缓存目录内容 - shell: bash - run: | - echo "📂 输出 pnpm 缓存目录内容..." - CACHE_DIR="/shared/pnpm-cache" - if [ -d "$CACHE_DIR" ]; then - echo "--- $CACHE_DIR 内容 ---" - ls -lAh "$CACHE_DIR" - if [ -d "$CACHE_DIR/v10" ]; then - echo "--- $CACHE_DIR/v10 内容 ---" - ls -lAh "$CACHE_DIR/v10" - else - echo "$CACHE_DIR/v10 不存在" - fi - else - echo "$CACHE_DIR 不存在" - fi - - - name: 缓存依赖 - shell: bash - run: | - echo "📦 检查并恢复依赖缓存..." - export PATH=$PATH:/usr/local/bin - # 使用外部缓存时的优化 - echo "📦 使用外部缓存优化..." - pnpm config set prefer-offline true echo "开始时间: $(date)" pnpm install --frozen-lockfile echo "✅ 依赖安装完成" + echo "📦 node_modules 目录大小:" + du -sh node_modules || echo "node_modules 目录不存在" - name: 验证依赖 shell: bash