宝塔webHook自动拉取代码脚本---前端编译

#!/bin/bash
su - www
echo ""
echo "=========================================="
echo "$(date '+%Y-%m-%d %H:%M:%S') 开始部署"
echo "=========================================="

# 定义日志文件
LOG_FILE="/tmp/deploy_financial_vue.log"
echo "日志文件: $LOG_FILE" | tee -a $LOG_FILE

# 记录执行用户
echo "当前用户: $(whoami)" | tee -a $LOG_FILE
echo "当前目录: $(pwd)" | tee -a $LOG_FILE

# 进入项目目录
TARGET_DIR="/www/wwwroot/vue-project-source/kcy_front"
echo "切换到目录: $TARGET_DIR" | tee -a $LOG_FILE

if [ ! -d "$TARGET_DIR" ]; then
    echo "错误: 目录不存在 $TARGET_DIR" | tee -a $LOG_FILE
    exit 1
fi

cd "$TARGET_DIR"
echo "当前目录: $(pwd)" | tee -a $LOG_FILE

# 检查git状态
echo "=== Git 状态 ===" | tee -a $LOG_FILE
git status | tee -a $LOG_FILE

echo "=== 远程仓库 ===" | tee -a $LOG_FILE
git remote -v | tee -a $LOG_FILE

echo "=== 开始拉取代码 ===" | tee -a $LOG_FILE
# 拉取代码,捕获详细输出
GIT_OUTPUT=$(git pull origin main 2>&1)
GIT_EXIT_CODE=$?

echo "Git 退出码: $GIT_EXIT_CODE" | tee -a $LOG_FILE
echo "Git 输出: $GIT_OUTPUT" | tee -a $LOG_FILE

if [ $GIT_EXIT_CODE -eq 0 ]; then
    echo "✅ Git 拉取成功" | tee -a $LOG_FILE
else
    echo "❌ Git 拉取失败" | tee -a $LOG_FILE
    echo "尝试使用强制拉取..." | tee -a $LOG_FILE
    
    # 尝试重置和强制拉取
    git fetch --all | tee -a $LOG_FILE
    git reset --hard origin/main | tee -a $LOG_FILE
    git pull origin main | tee -a $LOG_FILE
fi

# 检查文件变化
echo "=== 文件变更 ===" | tee -a $LOG_FILE
git diff --name-only HEAD~1 HEAD | tee -a $LOG_FILE

# 更新npm
echo "=== npm update ==="  | tee -a $LOG_FILE
npm update

# 打包,并输出到相关目录
echo "=== npm run build --output-dir=/www/wwwroot/kcyv2.sg199.net ==="  | tee -a $LOG_FILE
npm run build --output-dir=../../kcyv2.sg199.net  | tee -a $LOG_FILE

# cp打包好的项目到另外的目录
COPY_DIR="/www/wwwroot/kcyv2.sg199.net/"
echo "切换到目录: $COPY_DIR" | tee -a $LOG_FILE
cd "$COPY_DIR"
echo "当前目录: $(pwd)" | tee -a $LOG_FILE
echo "复制目录文件到v2.sg199.net"
cp -rf ./ ../v2.sg199.net/


echo "=========================================="
echo "$(date '+%Y-%m-%d %H:%M:%S') 部署完成"
echo "==========================================" | tee -a $LOG_FILE

# 检查PHP环境
if [ -f "package.json" ]; then
    echo "检测到 package.json" | tee -a $LOG_FILE
    npm -v | tee -a $LOG_FILE
fi

  

posted @ 2026-03-27 11:05  dreamboycx  阅读(1)  评论(0)    收藏  举报