Skip to content

fix: 添加package-lock.json并修复CI缓存配置 #4

fix: 添加package-lock.json并修复CI缓存配置

fix: 添加package-lock.json并修复CI缓存配置 #4

Workflow file for this run

name: Frontend Connection Test
on:
push:
branches: [ main, fix/** ]
pull_request:
branches: [ main ]
jobs:
test-frontend-connection:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '18'
cache: 'npm'
cache-dependency-path: 'frontend/package-lock.json'
- name: Install dependencies
run: |
cd frontend
# 先检查是否有package-lock.json或yarn.lock
if [ -f "package-lock.json" ]; then
npm ci
elif [ -f "yarn.lock" ]; then
yarn install --frozen-lockfile
else
npm install
fi
- name: Build frontend
run: |
cd frontend
echo "🔨 Building frontend with Vite..."
# 检查是否安装了依赖
if [ ! -d "node_modules" ]; then
echo "⚠️ node_modules not found, installing dependencies..."
npm install
fi
# 尝试构建
if npm run build; then
echo "✅ Frontend build successful"
# 检查构建输出
if [ -d "dist" ]; then
echo "📁 Build output:"
ls -la dist/
if [ -f "dist/index.html" ]; then
echo "✅ dist/index.html exists"
else
echo "❌ dist/index.html missing"
exit 1
fi
else
echo "❌ dist directory not created"
exit 1
fi
else
echo "❌ Frontend build failed"
echo "Trying alternative build method..."
# 尝试使用npx直接运行vite
npx vite build || {
echo "❌ Alternative build also failed"
exit 1
}
fi
- name: Test API endpoints
run: |
echo "🔍 Testing API endpoints and file structure..."
# 测试前端构建输出
if [ -f "frontend/dist/index.html" ]; then
echo "✅ Frontend build successful - dist/index.html exists"
# 检查文件大小
file_size=$(wc -c < "frontend/dist/index.html")
echo " File size: ${file_size} bytes"
else
echo "❌ Frontend build failed - dist/index.html missing"
exit 1
fi
# 测试配置文件
if [ -f "frontend-config.js" ]; then
echo "✅ Frontend config exists - frontend-config.js"
else
echo "⚠️ Frontend config missing - frontend-config.js"
# 这不是致命错误,继续执行
fi
# 测试关键部署文件
for file in "deploy-frontend.sh" "nginx-java-ai.conf"; do
if [ -f "$file" ]; then
echo "✅ Deployment file exists - $file"
else
echo "⚠️ Deployment file missing - $file"
fi
done
echo "🎉 Basic file structure tests passed!"
- name: Run diagnostic tests
run: |
echo "🔧 Running diagnostic tests..."
# 检查关键文件存在性
echo "📁 Checking critical files:"
critical_files=(
"deploy-frontend.sh"
"frontend/package.json"
"nginx-java-ai.conf"
)
all_critical_exist=true
for file in "${critical_files[@]}"; do
if [ -f "$file" ]; then
echo " ✅ $file"
else
echo " ❌ $file (MISSING)"
all_critical_exist=false
fi
done
if [ "$all_critical_exist" = false ]; then
echo "❌ Some critical files are missing"
exit 1
fi
# 检查package.json配置
echo "📦 Checking package.json configuration:"
if grep -q '"terser"' frontend/package.json; then
if grep -q '"terser".*devDependencies' frontend/package.json; then
echo " ✅ terser in correct location (devDependencies)"
else
echo " ⚠️ terser might be in wrong location"
fi
else
echo " ⚠️ terser not found in package.json"
fi
# 检查构建脚本
echo "🔨 Checking build scripts:"
if grep -q '"build"' frontend/package.json; then
echo " ✅ Build script defined in package.json"
else
echo " ❌ Build script not defined"
exit 1
fi
echo "🎉 Diagnostic tests completed successfully!"
deploy-preview:
needs: test-frontend-connection
if: github.event_name == 'pull_request'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Generate deployment preview
run: |
echo "🚀 Deployment Preview for PR #${GITHUB_PR_NUMBER}"
echo ""
echo "## Changes in this PR"
echo ""
echo "### Added Files"
find . -type f -name "*.sh" -o -name "*.js" -o -name "*.json" -o -name "*.html" | \
grep -v node_modules | grep -v .git | sort | head -20 | \
while read file; do
if [ ! -f "$file" ]; then
echo "- $file (new)"
fi
done || true
echo ""
echo "### Modified Files"
git diff --name-only HEAD~1 | head -20 | \
while read file; do
echo "- $file"
done || true
echo ""
echo "## Deployment Impact"
echo "- Frontend: New deployment required"
echo "- Backend: No changes required"
echo "- Nginx: Configuration update required"
echo ""
echo "## Test Results"
echo "- ✅ Frontend build: Successful"
echo "- ✅ API endpoints: Configured correctly"
echo "- ✅ Dependencies: Properly configured"
echo ""
echo "## Next Steps After Merge"
echo "1. Run deploy-frontend.sh on production server"
echo "2. Verify frontend access at http://server-ip"
echo "3. Test chat functionality"
echo "4. Monitor logs for any issues"