From 5ecf77335eab7bc70495f6d7d4f9a749957bd382 Mon Sep 17 00:00:00 2001 From: wenfp Date: Mon, 27 Jul 2026 12:45:46 +0800 Subject: [PATCH] update --- .env.example | 2 ++ app/AGENTS.md | 2 +- scripts/deploy_front.sh | 12 ++++++++++++ 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/.env.example b/.env.example index 4ed02f6..fa00686 100644 --- a/.env.example +++ b/.env.example @@ -7,3 +7,5 @@ DEPLOY_BRANCH=main DEPLOY_SCRIPT_PATH=/www/wwwroot/next.zizaifutian.com/admin/scripts/deploy_front.sh DEPLOY_COMMAND_TIMEOUT=600 DEPLOY_LOCK_PATH=/tmp/py-web-deploy.lock +# 可选:填服务器 `dirname $(which node)` 的结果,解决 webhook 进程拿到旧 Node 的问题。 +DEPLOY_NODE_BIN_DIR=/usr/bin diff --git a/app/AGENTS.md b/app/AGENTS.md index 62061a7..8a69266 100644 --- a/app/AGENTS.md +++ b/app/AGENTS.md @@ -88,7 +88,7 @@ OSS_ENDPOINT、OSS_BUCKET_NAME、OSS_ACCESS_KEY_ID、OSS_ACCESS_KEY_SECRET、OSS - 自动部署接口为 `/deploy/webhook`,生产环境通常通过 Nginx 映射为 `/api/deploy/webhook` 给 Gitea 调用。 - Gitea Webhook 应配置 `Secret`,后端会按原始请求体校验 `X-Gitea-Signature` 的 HMAC-SHA256 签名;也兼容 `X-Hub-Signature-256`。 -- 部署配置通过 `.env` 或环境变量提供:`DEPLOY_WEBHOOK_SECRET`、`DEPLOY_PROJECT_DIR`、`DEPLOY_FRONT_DIR`、`DEPLOY_BRANCH`、`DEPLOY_SCRIPT_PATH`、`DEPLOY_COMMAND_TIMEOUT`、`DEPLOY_LOCK_PATH`。 +- 部署配置通过 `.env` 或环境变量提供:`DEPLOY_WEBHOOK_SECRET`、`DEPLOY_PROJECT_DIR`、`DEPLOY_FRONT_DIR`、`DEPLOY_BRANCH`、`DEPLOY_SCRIPT_PATH`、`DEPLOY_COMMAND_TIMEOUT`、`DEPLOY_LOCK_PATH`;如 webhook 进程拿到旧 Node,可设置 `DEPLOY_NODE_BIN_DIR` 指向新 Node 所在目录。 - 部署脚本为 `scripts/deploy_front.sh`,负责在服务器项目目录执行 `git pull`、进入前端目录安装依赖并执行 `pnpm build`。 - webhook 密钥不得写入源码或文档;`.env.example` 只能保留占位值。 diff --git a/scripts/deploy_front.sh b/scripts/deploy_front.sh index a5e294e..53354c9 100755 --- a/scripts/deploy_front.sh +++ b/scripts/deploy_front.sh @@ -4,6 +4,18 @@ set -euo pipefail PROJECT_DIR="${DEPLOY_PROJECT_DIR:-/www/wwwroot/next.zizaifutian.com/admin}" FRONT_DIR="${DEPLOY_FRONT_DIR:-front}" BRANCH="${DEPLOY_BRANCH:-}" +NODE_BIN_DIR="${DEPLOY_NODE_BIN_DIR:-}" + +if [ -n "$NODE_BIN_DIR" ]; then + export PATH="$NODE_BIN_DIR:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:$PATH" +else + export PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:$PATH" +fi + +echo "node: $(command -v node || true)" +node -v +echo "pnpm: $(command -v pnpm || true)" +pnpm -v cd "$PROJECT_DIR"