# 执行命令为 bash xx.sh
#!/opt/homebrew/bin/bash
REMOTE_REPO="xxxx.git"
# 提示用户输入commit信息
read -ep "请输入commit信息: " COMMIT_MESSAGE
# 分支数组及其对应的打包命令
declare -A branch_commands=(
["xxxx"]="npm run build:prod"
["xxxx"]="npm run build:dev"
)
# 显示分支选项
echo "请选择要发布的分支(输入数字):"
index=1
for branch in "${!branch_commands[@]}"; do
echo "$index)$branch"
((index++))
done
# 读取用户选择的分支
read -p "分支选择: " branch_choice
# 获取分支名
BRANCH_KEY=$(echo "${!branch_commands[@]}" | tr ' ' '\n' | sed -n "${branch_choice}p")
# 确保选择了有效的分支
if [ -z "$BRANCH_KEY" ]; then
echo "无效的分支选择。"
exit 1
fi
# 获取选择的分支名
BRANCH=$BRANCH_KEY
echo "您选择的分支是: $BRANCH"
# 获取对应的打包命令
BUILD_CMD=${branch_commands[$BRANCH]}
# 执行对应的打包命令
echo "正在打包 $BRANCH..." $BUILD_CMD || { echo '打包失败' ; exit 1; }
$BUILD_CMD
# 切换到打包后的目录,通常是dist
cd dist
echo "进入dist"
# 初始化git仓库(如果尚未初始化)
git init
git branch -M main master
# 添加所有文件到暂存区
git add -A
# 创建一个新的commit
git commit -m "$COMMIT_MESSAGE"
# 强制推送到远程仓库的指定分支
git push -f $REMOTE_REPO master:$BRANCH
# 返回项目根目录
cd ..
echo "打包完成"