bugfix
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
# 关闭 errexit,改用手动判断关键步骤,避免非致命错误中断
|
||||
set -uo pipefail
|
||||
|
||||
# 前置校验:当前是否为git仓库,非git仓库直接退出
|
||||
if ! git rev-parse --is-inside-work-tree >/dev/null 2>&1; then
|
||||
@@ -7,17 +8,23 @@ if ! git rev-parse --is-inside-work-tree >/dev/null 2>&1; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 重置本地修改
|
||||
git restore .
|
||||
# 重置本地修改(无修改也不报错,正常继续)
|
||||
echo "重置本地修改..."
|
||||
git restore . >/dev/null 2>&1
|
||||
|
||||
# 切main分支:屏蔽正常提示,仅失败时退出
|
||||
# 切main分支:无论是否已在main,都正常继续,仅真失败才退出
|
||||
echo "切换到main分支..."
|
||||
git checkout main >/dev/null 2>&1 || { echo "切换main分支失败,终止执行"; exit 1; }
|
||||
git checkout main >/dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "错误:切换main分支失败,终止执行"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 拉最新代码:兼容"已最新"场景,仅真失败才退出(核心修复)
|
||||
# 拉最新代码:已最新/拉取成功都继续,拉取失败才退出(彻底兼容所有场景)
|
||||
echo "拉取main分支最新代码..."
|
||||
if ! git pull origin main --rebase >/dev/null 2>&1; then
|
||||
echo "拉取main分支最新代码失败,终止执行"
|
||||
git pull origin main --rebase >/dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "错误:拉取main分支最新代码失败,终止执行"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
@@ -35,19 +42,29 @@ get_latest_tag() {
|
||||
# 获取并校验tag,无tag直接退出
|
||||
latest_tag=$(get_latest_tag)
|
||||
if [ "$latest_tag" = "no_tag" ]; then
|
||||
echo "仓库无任何tag,终止执行"
|
||||
echo "错误:仓库无任何tag,终止执行"
|
||||
exit 1
|
||||
fi
|
||||
echo "获取到目标tag:$latest_tag"
|
||||
|
||||
# 切换tag,失败退出
|
||||
git checkout "$latest_tag" || { echo "切换至tag $latest_tag失败,终止执行"; exit 1; }
|
||||
echo "切换至tag $latest_tag..."
|
||||
git checkout "$latest_tag" >/dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "错误:切换至tag $latest_tag失败,终止执行"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 执行构建脚本,失败直接退出
|
||||
bash bash/build_class.sh || { echo "构建脚本执行失败,终止执行"; exit 1; }
|
||||
echo "执行构建脚本..."
|
||||
bash bash/build_class.sh
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "错误:构建脚本执行失败,终止执行"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 确保config目录存在,写入tag信息
|
||||
mkdir -p config
|
||||
mkdir -p config >/dev/null 2>&1
|
||||
echo "$latest_tag" > config/version.flags
|
||||
echo "✅ 全部操作完成!tag已写入config/version.flags"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user