From 4adf38af773c5b52bbbcbd0f49a65ad66b439499 Mon Sep 17 00:00:00 2001 From: chenxing Date: Mon, 10 Aug 2026 16:16:58 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20deploy.yml=20=E4=B8=A4=E5=A4=84=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=20-=20.npmrc=20=E4=BB=85=E5=AD=98=E5=9C=A8=E6=97=B6?= =?UTF-8?q?=E5=88=A0(=E8=A2=ABgitignore,CI=E6=97=A0=E6=AD=A4=E6=96=87?= =?UTF-8?q?=E4=BB=B6);=20=E8=BD=AF=E9=93=BE=E6=94=B9=E7=94=A8=E7=9B=B8?= =?UTF-8?q?=E5=AF=B9=E8=B7=AF=E5=BE=84(releases/X)=E9=81=BF=E5=85=8DCaddy?= =?UTF-8?q?=E5=AE=B9=E5=99=A8=E5=86=85=E7=BB=9D=E5=AF=B9=E8=B7=AF=E5=BE=84?= =?UTF-8?q?=E6=96=AD=E9=93=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitea/workflows/deploy.yml | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml index 2b4ae01..990c6e7 100644 --- a/.gitea/workflows/deploy.yml +++ b/.gitea/workflows/deploy.yml @@ -53,7 +53,8 @@ jobs: set -e cd /build # 去掉 Windows 专用 sass 二进制路径(Linux 容器内该路径无效,否则 build 报错) - sed -i "/SASS_BINARY_PATH/d" .npmrc + # .npmrc 被 gitignore、CI 克隆下来没有它,故仅在存在时才删(缺失不报错) + if [ -f .npmrc ]; then sed -i "/SASS_BINARY_PATH/d" .npmrc; fi npm ci npm run build:prod ' @@ -66,14 +67,16 @@ jobs: if [ ! -L /data/www/userbase/front ]; then mkdir -p /data/www/userbase/releases mv /data/www/userbase/front /data/www/userbase/releases/initial - ln -sfn /data/www/userbase/releases/initial /data/www/userbase/front + # 相对软链:Caddy 容器内 /data/www/userbase 挂在 /srv/userbase, + # 绝对路径在容器内解析不到,必须用相对路径(相对 front 所在目录) + ln -sfn releases/initial /data/www/userbase/front echo "INIT: front -> releases/initial (保留上线前状态用于回滚)" fi mkdir -p /data/www/userbase/releases/$VERSION cp -r /build/dist/prod/. /data/www/userbase/releases/$VERSION/ - # 原子切换:front 此时已是软链接,ln -sfn 直接替换指向 - ln -sfn /data/www/userbase/releases/$VERSION /data/www/userbase/front + # 原子切换:front 此时已是软链接,ln -sfn 直接替换指向(必须用相对路径) + ln -sfn releases/$VERSION /data/www/userbase/front echo "current symlink ->"; ls -la /data/www/userbase/front # 清理旧版本,保留最近 5 个(initial 也会被计入,最多保留 5 个含 initial) cd /data/www/userbase/releases