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