name: Deploy to Server on: [push] jobs: deploy: runs-on: ubuntu steps: - name: Deploy using SSH uses: https://gitea.com/actions/appleboy-ssh-action@v1.0.3 with: host: 6.6.6.66 username: quant password: 123quant-speed script: | TARGET_DIR="/home/quant/data/dev/deploy" SUDO_PASSWORD="123quant-speed" # 1. 切换到目标目录 echo "===== 切换到目标目录: $TARGET_DIR =====" cd $TARGET_DIR || { echo "错误:目录 $TARGET_DIR 不存在!" exit 1 } # 2. 停止并移除 Docker 容器 echo -e "\n===== 停止并清理 Docker =====" echo $SUDO_PASSWORD | sudo -S docker compose down # 3. 拉取 Git 最新代码 echo -e "\n===== 拉取 Git 代码 =====" REPO_URL="https://sdd:zsj981107@gitea.tangledup-ai.com/quant-speed-AI/Scoring-System.git" if [ ! -d ".git" ]; then echo "不是 git 仓库,尝试 clone(最多重试3次)..." # 先清理可能残留的 .git rm -rf .git for i in 1 2 3; do echo "第 $i 次尝试 clone..." git clone --depth=1 $REPO_URL /tmp/scoring-system-clone && break echo "clone 失败,等待5秒后重试..." sleep 5 done if [ -d "/tmp/scoring-system-clone/.git" ]; then cp -r /tmp/scoring-system-clone/. . rm -rf /tmp/scoring-system-clone echo "clone 成功" else echo "错误:clone 失败,终止部署" rm -rf /tmp/scoring-system-clone exit 1 fi else git remote set-url origin $REPO_URL if ! git pull; then echo "警告:Git pull 失败,尝试强制同步远程代码..." git fetch --all CURRENT_BRANCH=$(git rev-parse --abbrev-ref HEAD) git reset --hard origin/$CURRENT_BRANCH fi fi # 4. 创建/更新 .env 文件 echo -e "\n===== 配置环境变量 =====" cat > backend/.env <