feat: 添加 desk-demo 自动部署 workflow(Nginx /desk/ location + 静态文件部署)
This commit is contained in:
parent
37fe65d5a1
commit
46e5bb4f6c
104
.gitea/workflows/deploy-desk-demo.yaml
Normal file
104
.gitea/workflows/deploy-desk-demo.yaml
Normal file
@ -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 '<title>[^<]*</title>' | 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') ═══"
|
||||
Loading…
x
Reference in New Issue
Block a user