#!/bin/sh # 构建管线:gitea push(main) → webhook → 本脚本 → dist rsync 到 www-staging # Phase 1:真实 astro build;webhook 侧 HMAC 验签仍留 Phase 4 实装(见 webhook-receive.sh) set -e REPO_DIR="$HOME/Code/Github/my-blog" # Phase 4 构建机改裸 clone 路径 STAGING="$HOME/docker_apps/blog/www-staging" echo "[build] pnpm install --frozen-lockfile + astro build" cd "$REPO_DIR" pnpm install --frozen-lockfile >/dev/null pnpm astro build echo "[build] rsync -> $STAGING" mkdir -p "$STAGING" rsync -a --delete "$REPO_DIR/dist/" "$STAGING/" # 原图仓独立同步(不进 git/dist):/photos-originals/ 供图库"查看原图/下载" ORIG="$HOME/docker_apps/blog/photos-originals" if [ -d "$ORIG" ]; then rsync -a "$ORIG/" "$STAGING/photos-originals/"; fi printf 'built at %s\n' "$(date -Is)" > "$STAGING/.build-stamp" echo "[build] done: $(find "$STAGING" -name '*.html' | wc -l) html files"