You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

50 lines
1.3 KiB

#!/usr/bin/env sh
# 配置区(只改这里)
GIT_REPO_URL="ssh://root@git.xieyaxin.top:8892/topuser/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 "✅ 发布完成!"