Merge branch 'dev' into test
This commit is contained in:
+18
-14
@@ -6,6 +6,14 @@ export NVM_DIR="$HOME/.nvm"
|
||||
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
|
||||
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
|
||||
|
||||
# 全局变量统一声明。具体值由各步骤函数写入。
|
||||
REPO_TOPLEVEL=""
|
||||
LOG_FILE=""
|
||||
CURRENT_BRANCH=""
|
||||
START_PORT=""
|
||||
BUILD_EXIT=0
|
||||
|
||||
resolve_repo_context() {
|
||||
GIT_DIR_ABS="$(git rev-parse --absolute-git-dir 2>/dev/null)"
|
||||
if [ -n "$GIT_DIR_ABS" ] && [ -d "$GIT_DIR_ABS" ]; then
|
||||
REPO_TOPLEVEL="$(cd "$GIT_DIR_ABS/.." && pwd)"
|
||||
@@ -16,10 +24,6 @@ fi
|
||||
unset GIT_WORK_TREE
|
||||
cd "$REPO_TOPLEVEL" || { echo "FATAL: cannot cd to $REPO_TOPLEVEL" >&2; exit 1; }
|
||||
echo "=== REPO_TOPLEVEL=$REPO_TOPLEVEL (GIT_DIR=$GIT_DIR) ===" >&2
|
||||
|
||||
sync_worktree() {
|
||||
echo "=== sync_worktree: git reset --hard HEAD @ $(date +%Y-%m-%dT%H:%M:%S%z) ==="
|
||||
git reset --hard HEAD
|
||||
}
|
||||
|
||||
init_log_file() {
|
||||
@@ -37,12 +41,11 @@ write_metadata_header() {
|
||||
} > "$LOG_FILE"
|
||||
}
|
||||
|
||||
# ============================================================
|
||||
# 3. copy_env_by_branch —— 根据分支选 env-example → .env
|
||||
# main 分支 → .env.production(prod 部署)
|
||||
# test 分支 → .env.local(test 不碰 .env.production,避免读到 prod 域名)
|
||||
# dev 分支 → .env.local(未配远端用途,但保留)
|
||||
# ============================================================
|
||||
sync_worktree() {
|
||||
echo "=== sync_worktree: git reset --hard HEAD @ $(date +%Y-%m-%dT%H:%M:%S%z) ==="
|
||||
git reset --hard HEAD
|
||||
}
|
||||
|
||||
copy_env_by_branch() {
|
||||
CURRENT_BRANCH=$(git rev-parse --abbrev-ref HEAD)
|
||||
echo "=== branch: $CURRENT_BRANCH ===" >> "$LOG_FILE"
|
||||
@@ -131,10 +134,8 @@ stop_existing_next() {
|
||||
}
|
||||
|
||||
launch_next() {
|
||||
# next stdout/stderr 接到 logs/next-server.log(覆盖模式,每次 deploy 重新开始)
|
||||
NEXT_LOG_FILE="$REPO_TOPLEVEL/logs/next-server.log"
|
||||
echo "=== start LAUNCH port=$START_PORT @ $(date +%Y-%m-%dT%H:%M:%S%z) ===" >> "$LOG_FILE"
|
||||
PORT="$START_PORT" nohup pnpm run start > "$NEXT_LOG_FILE" 2>&1 &
|
||||
PORT="$START_PORT" nohup pnpm run start >> "$LOG_FILE" 2>&1 &
|
||||
START_PID=$!
|
||||
echo "=== start PID=$START_PID @ $(date +%Y-%m-%dT%H:%M:%S%z) ===" >> "$LOG_FILE"
|
||||
}
|
||||
@@ -150,10 +151,13 @@ log_abort() {
|
||||
# main —— 调度所有步骤
|
||||
# ============================================================
|
||||
main() {
|
||||
resolve_repo_context
|
||||
init_log_file
|
||||
sync_worktree # 先同步工作树到新 HEAD(与 git config denyCurrentBranch 配合)
|
||||
write_metadata_header # 先覆盖写元信息(这样 env copy 日志能保留在后面)
|
||||
|
||||
sync_worktree # 先同步工作树到新 HEAD(与 git config denyCurrentBranch 配合)
|
||||
copy_env_by_branch # 追加 env copy 日志
|
||||
|
||||
select_port_by_branch # 根据当前分支决定 next start 端口
|
||||
|
||||
if ! run_build; then
|
||||
|
||||
Reference in New Issue
Block a user