@echo off REM 自动化部署脚本 (Windows批处理版本) REM 功能:更新mkdocs.yml -> Git提交推送 -> 服务器拉取并重启 setlocal enabledelayedexpansion REM 配置参数 set "COMMIT_MESSAGE=%~1" if "%COMMIT_MESSAGE%"=="" set "COMMIT_MESSAGE=更新文档" set "SERVER_USER=%~2" set "SERVER_HOST=%~3" set "SERVER_PATH=%~4" if "%SERVER_PATH%"=="" set "SERVER_PATH=~/devops/mkdocs" echo ========================================= echo 步骤1: 更新mkdocs.yml echo ========================================= python .\add_docs_to_mkdocs.py if errorlevel 1 ( echo [错误] 更新mkdocs.yml失败 exit /b 1 ) echo [成功] mkdocs.yml更新成功 REM 检查是否有变更 echo. echo 检查Git状态... git status --porcelain >nul 2>&1 if errorlevel 1 ( echo 没有文件变更,跳过Git操作 exit /b 0 ) echo 发现以下变更: git status --short echo. echo ========================================= echo 步骤2: Git提交和推送 echo ========================================= REM 添加所有变更 echo 添加文件到Git... git add . if errorlevel 1 ( echo [错误] Git add 失败 exit /b 1 ) echo [成功] 文件已添加到暂存区 REM 提交 echo 提交变更... git commit -m "%COMMIT_MESSAGE%" if errorlevel 1 ( echo [错误] Git commit 失败 exit /b 1 ) echo [成功] 变更已提交 REM 推送 echo 推送到远程仓库... git push origin master if errorlevel 1 ( echo [错误] Git push 失败 exit /b 1 ) echo [成功] 代码已推送到远程仓库 REM 步骤3: 服务器操作 if not "%SERVER_USER%"=="" if not "%SERVER_HOST%"=="" ( echo. echo ========================================= echo 步骤3: 服务器拉取代码并重启服务 echo ========================================= echo 连接到服务器: %SERVER_USER%@%SERVER_HOST% echo 执行命令: cd %SERVER_PATH% ^&^& git pull origin master ^&^& docker-compose restart ssh %SERVER_USER%@%SERVER_HOST% "cd %SERVER_PATH% && git pull origin master && docker-compose restart" if errorlevel 1 ( echo [错误] 服务器操作失败 echo [提示] 请确保已配置SSH密钥,或手动执行服务器命令 exit /b 1 ) echo [成功] 服务器代码已更新,服务已重启 ) else ( echo. echo ========================================= echo 步骤3: 服务器操作(跳过) echo ========================================= echo 未配置服务器信息,跳过服务器操作 echo. echo 使用方法: echo deploy.bat [提交信息] [服务器用户] [服务器地址] [服务器路径] echo. echo 示例: echo deploy.bat "更新文档" user example.com ~/devops/mkdocs echo. echo 或手动执行: echo ssh user@host "cd ~/devops/mkdocs ^&^& git pull origin master ^&^& docker-compose restart" ) echo. echo ========================================= echo [成功] 部署完成! echo ========================================= endlocal