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
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 "✅ 发布完成!"
|