diff --git a/.gitea/workflows/deploy-desk-demo.yaml b/.gitea/workflows/deploy-desk-demo.yaml new file mode 100644 index 0000000..de1930d --- /dev/null +++ b/.gitea/workflows/deploy-desk-demo.yaml @@ -0,0 +1,104 @@ +# ════════════════════════════════════════════════════════ +# 部署大桌子小桌子演示页面 /desk/ +# ──────────────────────────────────────────────────────── +# 触发:手动 dispatch 或 push 到 main +# 作用:配置 Nginx /desk/ location + 部署静态文件 +# ════════════════════════════════════════════════════════ +name: 部署 Desk Demo + +on: + workflow_dispatch: + push: + branches: [main] + paths: + - 'desk-demo/**' + - '.gitea/workflows/deploy-desk-demo.yaml' + +jobs: + deploy-desk: + runs-on: ubuntu + steps: + - name: 同步最新代码 + run: | + cd /data/guanghulab/repo + git fetch origin + git reset --hard origin/main + echo "✅ 代码已同步到最新" + + - name: 部署 desk-demo 静态文件 + run: | + echo "═══ 部署 desk-demo 静态文件 ═══" + DESK_DIR="/var/www/guanghulab/desk" + mkdir -p "$DESK_DIR" + cp /data/guanghulab/repo/desk-demo/index.html "$DESK_DIR/index.html" + chown -R www-data:www-data "$DESK_DIR" 2>/dev/null || true + chmod 755 "$DESK_DIR" + chmod 644 "$DESK_DIR/index.html" + echo "✅ desk-demo 文件已部署到 $DESK_DIR" + ls -la "$DESK_DIR" + + - name: 配置 Nginx /desk/ location + run: | + echo "═══ 配置 Nginx /desk/ location ═══" + + NGINX_CONF="/etc/nginx/sites-available/guanghulab-cvm" + + # 检查 /desk/ location 是否已存在 + if grep -q "location /desk/" "$NGINX_CONF" 2>/dev/null; then + echo "⚠️ /desk/ location 已存在,跳过添加" + else + echo "📝 添加 /desk/ location 到 Nginx 配置..." + + # 在 Forgejo location / 之前插入 /desk/ location + # 找到 "location / {" 这一行,在它前面插入 desk location + sed -i '/# ─── Forgejo 代码仓库 (\/)/i\ + # ─── Desk Demo 大桌子小桌子 (\/desk\/) ───\ + location /desk/ {\ + alias /var/www/guanghulab/desk/;\ + index index.html;\ + try_files $uri $uri/ /desk/index.html;\ + }\ +' "$NGINX_CONF" + + echo "✅ /desk/ location 已添加" + fi + + echo "═══ 当前 Nginx 配置中 /desk/ 相关内容 ═══" + grep -A5 "desk" "$NGINX_CONF" || echo "(未找到 desk 相关内容)" + + - name: 测试并重载 Nginx + run: | + echo "═══ 测试 Nginx 配置 ═══" + if nginx -t; then + echo "✅ Nginx 配置测试通过" + echo "═══ 重载 Nginx ═══" + systemctl reload nginx + echo "✅ Nginx 已重载" + else + echo "❌ Nginx 配置测试失败" + exit 1 + fi + + - name: 验证部署 + run: | + sleep 2 + echo "═══ 验证 /desk/ 部署 ═══" + + HTTP_CODE=$(curl -s -o /dev/null -w "%{http_code}" http://127.0.0.1/desk/) + echo "HTTP 状态码: $HTTP_CODE" + + if [ "$HTTP_CODE" = "200" ]; then + TITLE=$(curl -s http://127.0.0.1/desk/ | grep -o '[^<]*' | head -1) + echo "页面标题: $TITLE" + + if echo "$TITLE" | grep -q "大桌子小桌子"; then + echo "✅ Desk Demo 部署成功!页面标题正确" + else + echo "⚠️ 页面标题不匹配,可能仍指向首页" + fi + else + echo "❌ /desk/ 返回非200状态码" + exit 1 + fi + + echo "═══ 部署完成 ✅ $(date '+%Y-%m-%d %H:%M:%S') ═══"