#!/usr/bin/env sh # 配置区(只改这里) GIT_REPO_URL="git@gitee.com:xieyaxin/nuxt4-demo.git" PROD_BRANCH="deploy" # 你要存放产物的分支名(会自动创建) BUILD_FOLDER=".output" # 打包产物目录 ARCHIVE_NAME="build-output.tar.gz" ARCHIVE_PATH=".tmp_${ARCHIVE_NAME}" COMMIT_MSG="deploy: build at $(date +'%Y-%m-%d %H:%M:%S')" # 1. 先打包 echo "📦 构建项目..." bun run build # 2. 克隆远程产物分支到临时目录 echo "⬇️ 拉取产物分支..." git clone --single-branch --branch $PROD_BRANCH $GIT_REPO_URL .tmp_dist || { echo "🆕 分支不存在,创建新分支..." mkdir .tmp_dist cd .tmp_dist git init git checkout -b $PROD_BRANCH git remote add origin $GIT_REPO_URL cd .. } # 3. 压缩构建产物 echo "🗜️ 压缩构建目录..." tar -czf "$ARCHIVE_PATH" -C "$BUILD_FOLDER" . # 4. 删除旧产物,复制新产物 echo "♻️ 更新产物文件..." rm -rf .tmp_dist/* cp -r $BUILD_FOLDER/.drone.yml .tmp_dist/.drone.yml cp "$ARCHIVE_PATH" ".tmp_dist/$ARCHIVE_NAME" # 5. 提交并推送 cd .tmp_dist git add -A git commit -m "$COMMIT_MSG" echo "🚀 推送到远程分支 $PROD_BRANCH..." git push origin $PROD_BRANCH # 6. 清理临时文件 cd .. rm -rf .tmp_dist rm -f "$ARCHIVE_PATH" echo "✅ 发布完成!"