一些常用的操作可以封装成脚本,将excel文件转json文件,策划更新配置文件后,需要给客户端导表,hhh感觉我又在干运维的活。
全渠道更新同理
服务器端配置分为热刷脚本和大版本更新,热刷只更json配置文件
版本更新需要打jar包,并进行停服更新
更新文件提交给运维,当然我们也可以自己部署hhh
开发新功能需要更新jar包,建立版本分支,这里是发布版本给测试服提测 可以参考下
使用脚本后可以节省出大量时间~~
补一个脚本,这是后面的新项目,省去输入时间,加入遍历
@echo off
setlocal enabledelayedexpansion
SET UPDATE_ARGUMENTS_INDEX=1
SET UPDATE_ARGUMENTS[1].EXCEL_PATH=D:\work\UFan\MSG\doc\线上数据-玩吧
SET UPDATE_ARGUMENTS[1].PUBLISH_PATH=.\摩羯\
SET UPDATE_ARGUMENTS[1].UPDATE_PATH=D:\work\UFan\MSG\publish\alpha\update
SET UPDATE_ARGUMENTS[2].EXCEL_PATH=D:\work\UFan\MSG\doc\线上数据-爱微游
SET UPDATE_ARGUMENTS[2].PUBLISH_PATH=.\专区\
SET UPDATE_ARGUMENTS[2].UPDATE_PATH=D:\work\UFan\MSG\publish\alpha\update
SET UPDATE_ARGUMENTS[3].EXCEL_PATH=D:\work\UFan\MSG\doc\线上数据-混服
SET UPDATE_ARGUMENTS[3].PUBLISH_PATH=.\混服\
SET UPDATE_ARGUMENTS[3].UPDATE_PATH=D:\work\UFan\MSG\publish\alpha\update
SET UPDATE_ARGUMENTS[4].EXCEL_PATH=D:\work\UFan\MSG\doc\线上数据-安锋
SET UPDATE_ARGUMENTS[4].PUBLISH_PATH=.\安峰安卓\
SET UPDATE_ARGUMENTS[4].UPDATE_PATH=D:\work\UFan\MSG\publish\alpha\update
SET UPDATE_ARGUMENTS[5].EXCEL_PATH=D:\work\UFan\MSG\doc\微信小游戏
SET UPDATE_ARGUMENTS[5].PUBLISH_PATH=.\微信小游戏\
SET UPDATE_ARGUMENTS[5].UPDATE_PATH=D:\work\UFan\MSG\publish\alpha\update
SET UPDATE_ARGUMENTS_LENGTH=5
:BeginLoop
if %UPDATE_ARGUMENTS_INDEX% GTR %UPDATE_ARGUMENTS_LENGTH% goto EndLoop
call :update !UPDATE_ARGUMENTS[%UPDATE_ARGUMENTS_INDEX%].EXCEL_PATH! !UPDATE_ARGUMENTS[%UPDATE_ARGUMENTS_INDEX%].PUBLISH_PATH! !UPDATE_ARGUMENTS[%UPDATE_ARGUMENTS_INDEX%].UPDATE_PATH!
set /a UPDATE_ARGUMENTS_INDEX=%UPDATE_ARGUMENTS_INDEX%+1
goto BeginLoop
:EndLoop
pause
exit
:update
set EXCEL_PATH=%1
set PUBLISH_PATH=%2
set UPDATE_PATH=%3
::更新配置SVN
svn update %EXCEL_PATH%
::解析配置
java -jar D:\work\UFan\MSG\doc\xls-parser-0.0.1-SNAPSHOT\lib/xls-parser-0.0.1-SNAPSHOT.jar %EXCEL_PATH% %EXCEL_PATH%
::更新publish目录
svn update %PUBLISH_PATH%
::拷贝上一次的msg_game目录
set TARGET_PATH=%PUBLISH_PATH%%date:~0,4%-%date:~5,2%-%date:~8,2%\
set SOURCE_PATH=%EXCEL_PATH%\server\
for /f "delims=" %%i in ('dir %PUBLISH_PATH% /b /ad /od') do (set "var_min=%%i")
xcopy %PUBLISH_PATH%%var_min%\msg_game %TARGET_PATH%msg_game\ /e/s/y
xcopy %SOURCE_PATH%common %PUBLISH_PATH%%var_min%\msg_game\config\dataconfig\ /e/s/y
::拷贝配置文件
xcopy %SOURCE_PATH%common %TARGET_PATH%msg_game\config\dataconfig\ /e/s/y
xcopy %SOURCE_PATH%* %TARGET_PATH%update\ /e/s/y
rd /s /q %TARGET_PATH%update\common
::拷贝需要更新的dataconfig至update\config目录(先拷贝到上一次msg_game\config\dataconfig目录,然后拷贝更改的配置,最后还原上一次目录)
md %TARGET_PATH%update\dataconfig
xcopy %SOURCE_PATH%common %PUBLISH_PATH%%var_min%\msg_game\config\dataconfig\ /e/s/y
for /f "delims=^?M " %%i in ('"svn status %PUBLISH_PATH%%var_min%\msg_game\config\dataconfig"') do (
COPY /y %%i %TARGET_PATH%update\dataconfig\
)
for /f "delims=^? " %%i in ('"svn status %PUBLISH_PATH%%var_min%\msg_game\config\dataconfig | findstr "?""') do (
del %%i
)
svn revert -R %PUBLISH_PATH%%var_min%\msg_game\config\dataconfig
::拷贝需要更新的lib和config文件
md %TARGET_PATH%update\lib
COPY /y "D:\work\UFan\MSG\publish\alpha\gameserver\lib\msg-gameserver-0.1.1-SNAPSHOT.jar" "%TARGET_PATH%update\\lib"
COPY /y "D:\work\UFan\MSG\publish\alpha\gameserver\lib\daxiang-framework-0.1.1-SNAPSHOT.jar" "%TARGET_PATH%update\\lib"
COPY /y "D:\work\UFan\MSG\publish\alpha\gameserver\lib\daxiang-shared-0.1.1-SNAPSHOT.jar" "%TARGET_PATH%update\\lib"
xcopy %UPDATE_PATH% %TARGET_PATH%msg_game\ /e/s/y
xcopy %UPDATE_PATH% %TARGET_PATH%update\ /e/s/y
xcopy %TARGET_PATH%update\config %TARGET_PATH%update /e/s/y
rd /s /q %TARGET_PATH%update\config
::新建hotfix目录
md %TARGET_PATH%hotfix
GOTO:EOF