setlocal EnableDelayedExpansion
echo *********************************************************
echo 脚本功能:O4基础、合规、UFT的打包、升级环境、后台编译等。
echo 脚本编写:
echo 修订时间:2015.1.7
echo *********************************************************
rem 主流程
:main
rem SVN更新(在Jenkins中执行)
rem 初始配置
call %Workspace%\initTMP.bat
call %Workspace%\autopack\BASE_20160122_LS\initNEW2-BASE.bat
rem Debugtool导出日志和配置文件
rem call :Expinfo
rem 打包升级包
call :PackUp
rem 升级环境
call :ExecSQLJC
rem 编译基础清算后台服务
call :Compilesrc
rem 下载服务端so
call :DownloadSo
rem 检查错误日志
call :Checklog
rem 压缩包
call :PackPkg
rem 提交SVN
call :SVNcommit
goto :eof
exit /b
exit /b
rem ==========================Debugtool导出日志和配置文件============================================
:Expinfo
echo DEBUG导出前时间:%time% >>%LogDir%\计算时间.log
rem 通过DebugTools导出日志和配置文件
rem DebugTools路径 %DebugTools%
cd /d %DebugTools%
DebugTools.exe file=%Workspace%\base\Run\buildscript\autopack\DebugTools.bat
echo 导出debugtool日志
xcopy /e /q /y %SrcDir%\base\Run\buildscript\autopack\debugtool\DebugTools.log %LogDir%\
del /q %SrcDir%\base\Run\buildscript\autopack\debugtool\DebugTools.log
echo DEBUG导出后时间:%time% >>%LogDir%\计算时间.log
echo 导出日志和配置文件完成。
goto :eof
rem ==========================打包升级包======================================================
:PackUp
echo 打包升级包前时间:%time% >>%LogDir%\计算时间.log
echo 打包CRES基础包......
xcopy /e /q /y "%SrcDir%\base\Run\as2.0_x64" "%TarDir%\%PackName%\as2.0_x64\"
echo 打包debugtool等工具.....
xcopy /e /q /y %SrcDir%\Tools\升级部署工具\setupuft %TarDir%\%PackName%\Tools\升级部署工具\
xcopy /e /q /y %SrcDir%\Tools\委托对比工具 %TarDir%\%PackName%\Tools\委托对比工具\
rem 自动升级工具中,删除UFT模板
del /q %TarDir%\%PackName%\Tools\升级部署工具\UFTSetup0930模板_交易查询_不分离.xls,%TarDir%\%PackName%\Tools\升级部署工具\UFTSetup0930模板_交易查询_分离.xls
echo 打包O32同步脚本......
xcopy /e /q /y "%SrcDir%\base\Sources\Script\03.O32升级脚本" "%TarDir%\%PackName%\o4_o32\Script\"
echo 打包MC、jrar、bar1、bar2
xcopy /e /q /y %SrcDir%\base\Run\updatepkg\消息中心\workspace %TarDir%\%PackName%\mc\配置文件\workspace\
xcopy /e /q /y %SrcDir%\base\Run\updatepkg\消息中心\appcom %TarDir%\%PackName%\mc\appcom\
xcopy /e /q /y %SrcDir%\base\Run\updatepkg\接入AR %TarDir%\%PackName%\jrar\配置文件\
xcopy /e /q /y %SrcDir%\base\Run\updatepkg\总线AR1 %TarDir%\%PackName%\bar1\配置文件\
xcopy /e /q /y %SrcDir%\base\Run\updatepkg\总线AR2 %TarDir%\%PackName%\bar2\配置文件\
echo 打包newtran
xcopy /e /q /y "%SrcDir%\UFT2.0\Sources\newtran\bin" "%TarDir%\%PackName%\newtran\"
echo 打包基础子系统......
xcopy /e /q /y %SrcDir%\base\Sources\Src %TarDir%\%PackName%\base\Src\
xcopy /e /q /y %SourcesDirSrc%\%AresProject% %TarDir%\%PackName%\base\Src\
xcopy /e /q /y %SrcDir%\base\Sources\Script %TarDir%\%PackName%\base\Script\
rmdir /s /q %TarDir%\%PackName%\base\Script\03.O32升级脚本
del /q %TarDir%\%PackName%\base\Script\02.安装脚本\hshg_update.sql
del /q %TarDir%\%PackName%\base\Script\02.安装脚本\hsqs_update.sql
del /q %TarDir%\%PackName%\base\Script\02.安装脚本\hshis_update.sql
xcopy /e /q /y %SrcDir%\base\Run\updatepkg\基础逻辑 %TarDir%\%PackName%\base\配置文件\基础逻辑\
xcopy /e /q /y %SrcDir%\base\Run\updatepkg\基础原子 %TarDir%\%PackName%\base\配置文件\基础原子\
xcopy /e /q /y %SrcDir%\base\Run\updatepkg\文件更新 %TarDir%\%PackName%\base\update\
echo 打包升级包后时间:%time% >>%LogDir%\计算时间.log
goto :eof
rem ==========================升级环境======================================================
:ExecSqlJc
echo 升级脚本前时间:%time% >>%LogDir%\计算时间.log
echo 执行清库脚本(后续不同版本需要创建不同用户)
call :ExecSQL %SrcDir%\base\Run\buildscript\autopack\清库脚本 dropobj_hsjc.sql %JCDB%
echo JC升级脚本...
call :ExecSQL %TarDir%\%PackName%\base\Script\02.安装脚本 hsjc_update.sql %JCDB%
echo 升级脚本后时间:%time% >>%LogDir%\计算时间.log
goto :eof
rem 函数功能:执行SQL脚本
rem 函数参数:脚本路径%1, 脚本名称%2, 连接串%3,工作目录%4
:ExecSQL
set sqlScriptDir=%1
set sqlScriptFile=%2
set sqlDBServer=%3
set sqlCurDate=%date:~0,4%%date:~5,2%%date:~8,2%
set sqlTmp=%sqlScriptFile%_%sqlCurDate%.sql
set sqlLogFile=%sqlScriptFile%_%sqlCurDate%.log
cd /d %sqlScriptDir%
echo 生成脚本升级的脚本....
echo set feedback 1 >%sqlTmp%
echo set define off >>%sqlTmp%
echo set autoprint on>>%sqlTmp%
echo WHENEVER sqlERROR continue>>%sqlTmp%
echo conn %sqlDBServer%>>%sqlTmp%
echo PROMPT 已连接到本地数据库,开始执行...>>%sqlTmp%
echo @%sqlScriptFile%>>%sqlTmp%
echo SHOW ERROR>>%sqlTmp%
echo disconnect>>%sqlTmp%
echo exit>>%sqlTmp%
echo 执行脚本...
sqlplus /nolog @%sqlTmp%>%sqlScriptDir%\%sqlLogFile%
copy /y %sqlTmp% %LogDir%\
copy /y %sqlLogFile% %LogDir%\
del %sqlTmp%
del %sqlLogFile%
cd /d %Workspace%
goto :eof
rem ==========================编译基础后台服务======================================================
:Compilesrc
echo 编译后台前时间:%time% >>%LogDir%\计算时间.log
rem 上传基础后台
%puttyDir%\pscp.exe -sftp -l %CompileUser% -pw %CompilePwd% -r %TarDir%\%PackName%\base\Src\* %CompileIp%:/home/%CompileUser%/src <%puttyDir%\a.txt 2>>%LogDir%\ftp_error.log
%puttyDir%\pscp.exe -sftp -l %CompileUser% -pw %CompilePwd% -r %TarDir%\%PackName%\as2.0_x64\appcom\* %CompileIp%:/home/%CompileUser%/appcom 2>>%LogDir%\ftp_error.log
rem 编译基础后台
%puttyDir%\plink.exe -ssh -l %CompileUser% -pw %CompilePwd% -m %SrcDir%\autopack\后台编译命令\srcjc_cmd.txt %CompileIp% >%LogDir%\srcBASE_error.log 2>>&1
echo 编译后台后时间:%time% >>%LogDir%\计算时间.log
goto :eof
rem ==========================下载后台服务===========================================
:DownloadSo
echo 下载后台前时间:%time% >>%LogDir%\计算时间.log
rem 创建appcom目录
if exist "%Workspace%\appcom\" (
rmdir /S /Q "%Workspace%\appcom\"
)
mkdir "%Workspace%\appcom\"
rem 下载base的so
%puttyDir%\pscp.exe -batch -pw %CompilePwd% -r %CompileUser%@%CompileIp%:/home/%CompileUser%/appcom/* %Workspace%\appcom\ <%puttyDir%\a.txt
rem 生成base后台
xcopy /e /q /y %Workspace%\appcom %Workspace%\base\Sources\appcom\
del /q %%Workspace%\base\Sources\appcom\*_hg_*
del /q %Workspace%\base\Sources\appcom\*_qs_*
del /q %Workspace%\base\Sources\appcom\libo4_mc2_topic_api.so
rem 生成MC后台
xcopy /e /q /y %Workspace%\appcom\libo4_mc2_topic_api.so %Workspace%\base\Sources\mc\appcom\
echo 下载后台后时间:%time% >>%LogDir%\计算时间.log
goto :eof
rem ==========================检查错误日志===========================================
:Checklog
echo 输出本次版本包的信息....
echo 本次编译的结果如下(明细的日志请参看附件日志文件):>%LogDir%\..\today.txt
echo =======================================================================================================>>%LogDir%\..\today.txt
type %LogDir%\hsjc_update.sql_%sqlCurDate%.log|find "ORA-"
if "%errorlevel%" equ "0" (
echo 【基础脚本错误】脚本升级失败,错误信息如下,详细报错请见hsjc_update.sql_%sqlCurDate%.log:>>%LogDir%\..\today.txt
type %LogDir%\hsjc_update.sql_%sqlCurDate%.log|find "ORA-" >>%LogDir%\..\today.txt
)
type %LogDir%\hsjc_update.sql_%sqlCurDate%.log|find "SP2-"
if "%errorlevel%" equ "0" (
echo 【基础脚本错误】脚本升级失败,错误信息如下,详细报错请见hsjc_update.sql_%sqlCurDate%.log:>>%LogDir%\..\today.txt
type %LogDir%\hsjc_update.sql_%sqlCurDate%.log|find "SP2-" >>%LogDir%\..\today.txt
)
type %LogDir%\hsjc_update.sql_%sqlCurDate%.log|find "警告"
if "%errorlevel%" equ "0" (
echo 【基础脚本错误】脚本升级失败,错误信息如下,详细报错请见hsjc_update.sql_%sqlCurDate%.log:>>%LogDir%\..\today.txt
type %LogDir%\hsjc_update.sql_%sqlCurDate%.log|find "警告" >>%LogDir%\..\today.txt
)
type %LogDir%\srcBASE_error.log|find "Error "
if "%errorlevel%" equ "0" (
echo 【基础后台编译错误】错误信息如下,详细报错请见附件srcBASE_error.log:>>%LogDir%\..\today.txt
type %LogDir%\srcBASE_error.log|find "Error " >>%LogDir%\..\today.txt
)
type %LogDir%\srcBASE_error.log|find "/usr/bin/ld: cannot find"
if "%errorlevel%" equ "0" (
echo 【基础后台编译错误】错误信息如下,详细报错请见附件srcBASE_error.log.log:>>%LogDir%\..\today.txt
type %LogDir%\srcBASE_error.log.log|find "/usr/bin/ld: cannot find" >>%LogDir%\..\today.txt
)
type %LogDir%\ftp_error.log|find "No such file or directory"
if "%errorlevel%" equ "0" (
echo 【FTP错误】错误信息如下,详细报错请见附件No such file or directory:>>%LogDir%\..\today.txt
type %LogDir%\ftp_error.log|find "No such file or directory" >>%LogDir%\..\today.txt
)
type %LogDir%\ftp_error.log|find "not a directory"
if "%errorlevel%" equ "0" (
echo 【FTP错误】错误信息如下,详细报错请见附件No such file or directory:>>%LogDir%\..\today.txt
type %LogDir%\ftp_error.log|find "not a directory" >>%LogDir%\..\today.txt
)
echo 日志检查完成
goto :eof
rem ==========================打包压缩文件===========================================
:PackPkg
echo 压缩前时间:%time% >>%LogDir%\计算时间.log
if not defined WinRar goto :eof
echo 开始压缩日志...
cd /d %LogDir%\..
if exist today_Base.rar del /Q today_Base.rar
%WinRar% a -r today_Base.rar %PackName:~0,13%\*
echo 压缩日志完成
cd /d %Workspace%
rem 检查到有报错,无论前台、脚本、后台,即还原上次集成SVN版本,退出。
type %Logdir%\..\today.txt|find "错误】"
if "%errorlevel%" equ "0" (
rem 还原上次集成SVN版本,待编译报错修复后从此版本开始编译
copy /y %Logdir%\上次集成SVN版本.txt %Logdir%\..\上次集成SVN版本.txt
exit 1
)
echo 压缩后时间:%time% >>%LogDir%\计算时间.log
goto :eof
rem ==========================提交SVN===========================================
:SVNcommit
rem 检查错误信息,如果有错误,不上传FTP
type %LogDir%\..\today.txt|find "Error 1"
if "%errorlevel%" equ "0" (
exit 1
)
type %LogDir%\..\today.txt|find "ORA-"
if "%errorlevel%" equ "0" (
exit 1
)
type %LogDir%\..\today.txt|find "SP2-"
if "%errorlevel%" equ "0" (
exit 1
)
type %LogDir%\..\today.txt|find "警告"
if "%errorlevel%" equ "0" (
exit 1
)
type %LogDir%\..\today.txt|find "========== 全部重新生成"
if "%errorlevel%" equ "0" (
exit 1
)
type %LogDir%\..\today.txt|find "Error "
if "%errorlevel%" equ "0" (
exit 1
)
type %LogDir%\..\today.txt|find "/usr/bin/ld: cannot find"
if "%errorlevel%" equ "0" (
exit 1
)
type %LogDir%\..\today.txt|find "error:"
if "%errorlevel%" equ "0" (
exit 1
)
type %LogDir%\..\today.txt|find "error"
if "%errorlevel%" equ "0" (
exit 1
)
type %LogDir%\..\today.txt|find "Error: "
if "%errorlevel%" equ "0" (
exit 1
)
type %LogDir%\..\today.txt|find "【错误】"
if "%errorlevel%" equ "0" (
exit 1
)
type %LogDir%\..\today.txt|find "not a directory"
if "%errorlevel%" equ "0" (
exit 1
)
type %LogDir%\..\today.txt|find "No such file or directory"
if "%errorlevel%" equ "0" (
exit 1
)
rem 记录版本信息
if exist %Workspace%\base\Run\updatepkg\版本信息\version.ini (
for /f %%i in (%Workspace%\base\Run\updatepkg\版本信息\version.ini) do (
set aa=%%i
set aa=!aa:subversion=!
if "!aa!" EQU "%%i" (
echo !aa!>>%LogDir%\version1.ini
) else (
call set subversion=%%aa:~1%%
set /a subversion=!subversion!+1
echo subversion=!subversion!>>%LogDir%\version1.ini
)
)
move /y %LogDir%\version1.ini %Workspace%\base\Run\updatepkg\版本信息\version.ini
)
rem 递交记录版本信息
svn commit -m "提交修改单号:M200000000000 修改说明:递交记录版本信息" %Workspace%\base\Run\updatepkg\版本信息\version.ini>>%Logdir%\svnlog_commit.log 2>&1
rem 递交base后台
cd /d %Workspace%\base\Sources\appcom
svn add * --force
svn commit -m "提交修改单号:M200000000000 修改说明:编译生成SO文件提交" %Workspace%\base\Sources\appcom>>%Logdir%\svnlog_commit.log 2>&1
rem 递交mc
cd /d %Workspace%\base\Sources\mc\appcom
svn add * --force
svn commit -m "提交修改单号:M200000000000 修改说明:编译生成MC文件提交" %Workspace%\base\Sources\mc\appcom>>%Logdir%\svnlog_commit.log 2>&1
rem 生成base后台
cd /d %Workspace%\base\Sources\Script
svn add * --force
svn commit -m "提交修改单号:M200000000000 修改说明:编译生成脚本文件提交" %Workspace%\base\Sources\Script>>%Logdir%\svnlog_commit.log 2>&1
for /f "tokens=* delims=" %%i in (%Logdir%\svnlog_commit.log) do (
set tt=%%i
set tt=!tt:Commit failed=!
set tt=!tt:svn: E=!
if "!tt!" NEQ "%%i" (
echo 提交SVN时报错,请配管检查!!!>>%Logdir%\..\today.txt
exit 1
)
)
echo 提交SVN成功
goto :eof
echo *********************************************************
echo 脚本功能:O4基础、合规、UFT的打包、升级环境、后台编译等。
echo 脚本编写:
echo 修订时间:2015.1.7
echo *********************************************************
rem 主流程
:main
rem SVN更新(在Jenkins中执行)
rem 初始配置
call %Workspace%\initTMP.bat
call %Workspace%\autopack\BASE_20160122_LS\initNEW2-BASE.bat
rem Debugtool导出日志和配置文件
rem call :Expinfo
rem 打包升级包
call :PackUp
rem 升级环境
call :ExecSQLJC
rem 编译基础清算后台服务
call :Compilesrc
rem 下载服务端so
call :DownloadSo
rem 检查错误日志
call :Checklog
rem 压缩包
call :PackPkg
rem 提交SVN
call :SVNcommit
goto :eof
exit /b
exit /b
rem ==========================Debugtool导出日志和配置文件============================================
:Expinfo
echo DEBUG导出前时间:%time% >>%LogDir%\计算时间.log
rem 通过DebugTools导出日志和配置文件
rem DebugTools路径 %DebugTools%
cd /d %DebugTools%
DebugTools.exe file=%Workspace%\base\Run\buildscript\autopack\DebugTools.bat
echo 导出debugtool日志
xcopy /e /q /y %SrcDir%\base\Run\buildscript\autopack\debugtool\DebugTools.log %LogDir%\
del /q %SrcDir%\base\Run\buildscript\autopack\debugtool\DebugTools.log
echo DEBUG导出后时间:%time% >>%LogDir%\计算时间.log
echo 导出日志和配置文件完成。
goto :eof
rem ==========================打包升级包======================================================
:PackUp
echo 打包升级包前时间:%time% >>%LogDir%\计算时间.log
echo 打包CRES基础包......
xcopy /e /q /y "%SrcDir%\base\Run\as2.0_x64" "%TarDir%\%PackName%\as2.0_x64\"
echo 打包debugtool等工具.....
xcopy /e /q /y %SrcDir%\Tools\升级部署工具\setupuft %TarDir%\%PackName%\Tools\升级部署工具\
xcopy /e /q /y %SrcDir%\Tools\委托对比工具 %TarDir%\%PackName%\Tools\委托对比工具\
rem 自动升级工具中,删除UFT模板
del /q %TarDir%\%PackName%\Tools\升级部署工具\UFTSetup0930模板_交易查询_不分离.xls,%TarDir%\%PackName%\Tools\升级部署工具\UFTSetup0930模板_交易查询_分离.xls
echo 打包O32同步脚本......
xcopy /e /q /y "%SrcDir%\base\Sources\Script\03.O32升级脚本" "%TarDir%\%PackName%\o4_o32\Script\"
echo 打包MC、jrar、bar1、bar2
xcopy /e /q /y %SrcDir%\base\Run\updatepkg\消息中心\workspace %TarDir%\%PackName%\mc\配置文件\workspace\
xcopy /e /q /y %SrcDir%\base\Run\updatepkg\消息中心\appcom %TarDir%\%PackName%\mc\appcom\
xcopy /e /q /y %SrcDir%\base\Run\updatepkg\接入AR %TarDir%\%PackName%\jrar\配置文件\
xcopy /e /q /y %SrcDir%\base\Run\updatepkg\总线AR1 %TarDir%\%PackName%\bar1\配置文件\
xcopy /e /q /y %SrcDir%\base\Run\updatepkg\总线AR2 %TarDir%\%PackName%\bar2\配置文件\
echo 打包newtran
xcopy /e /q /y "%SrcDir%\UFT2.0\Sources\newtran\bin" "%TarDir%\%PackName%\newtran\"
echo 打包基础子系统......
xcopy /e /q /y %SrcDir%\base\Sources\Src %TarDir%\%PackName%\base\Src\
xcopy /e /q /y %SourcesDirSrc%\%AresProject% %TarDir%\%PackName%\base\Src\
xcopy /e /q /y %SrcDir%\base\Sources\Script %TarDir%\%PackName%\base\Script\
rmdir /s /q %TarDir%\%PackName%\base\Script\03.O32升级脚本
del /q %TarDir%\%PackName%\base\Script\02.安装脚本\hshg_update.sql
del /q %TarDir%\%PackName%\base\Script\02.安装脚本\hsqs_update.sql
del /q %TarDir%\%PackName%\base\Script\02.安装脚本\hshis_update.sql
xcopy /e /q /y %SrcDir%\base\Run\updatepkg\基础逻辑 %TarDir%\%PackName%\base\配置文件\基础逻辑\
xcopy /e /q /y %SrcDir%\base\Run\updatepkg\基础原子 %TarDir%\%PackName%\base\配置文件\基础原子\
xcopy /e /q /y %SrcDir%\base\Run\updatepkg\文件更新 %TarDir%\%PackName%\base\update\
echo 打包升级包后时间:%time% >>%LogDir%\计算时间.log
goto :eof
rem ==========================升级环境======================================================
:ExecSqlJc
echo 升级脚本前时间:%time% >>%LogDir%\计算时间.log
echo 执行清库脚本(后续不同版本需要创建不同用户)
call :ExecSQL %SrcDir%\base\Run\buildscript\autopack\清库脚本 dropobj_hsjc.sql %JCDB%
echo JC升级脚本...
call :ExecSQL %TarDir%\%PackName%\base\Script\02.安装脚本 hsjc_update.sql %JCDB%
echo 升级脚本后时间:%time% >>%LogDir%\计算时间.log
goto :eof
rem 函数功能:执行SQL脚本
rem 函数参数:脚本路径%1, 脚本名称%2, 连接串%3,工作目录%4
:ExecSQL
set sqlScriptDir=%1
set sqlScriptFile=%2
set sqlDBServer=%3
set sqlCurDate=%date:~0,4%%date:~5,2%%date:~8,2%
set sqlTmp=%sqlScriptFile%_%sqlCurDate%.sql
set sqlLogFile=%sqlScriptFile%_%sqlCurDate%.log
cd /d %sqlScriptDir%
echo 生成脚本升级的脚本....
echo set feedback 1 >%sqlTmp%
echo set define off >>%sqlTmp%
echo set autoprint on>>%sqlTmp%
echo WHENEVER sqlERROR continue>>%sqlTmp%
echo conn %sqlDBServer%>>%sqlTmp%
echo PROMPT 已连接到本地数据库,开始执行...>>%sqlTmp%
echo @%sqlScriptFile%>>%sqlTmp%
echo SHOW ERROR>>%sqlTmp%
echo disconnect>>%sqlTmp%
echo exit>>%sqlTmp%
echo 执行脚本...
sqlplus /nolog @%sqlTmp%>%sqlScriptDir%\%sqlLogFile%
copy /y %sqlTmp% %LogDir%\
copy /y %sqlLogFile% %LogDir%\
del %sqlTmp%
del %sqlLogFile%
cd /d %Workspace%
goto :eof
rem ==========================编译基础后台服务======================================================
:Compilesrc
echo 编译后台前时间:%time% >>%LogDir%\计算时间.log
rem 上传基础后台
%puttyDir%\pscp.exe -sftp -l %CompileUser% -pw %CompilePwd% -r %TarDir%\%PackName%\base\Src\* %CompileIp%:/home/%CompileUser%/src <%puttyDir%\a.txt 2>>%LogDir%\ftp_error.log
%puttyDir%\pscp.exe -sftp -l %CompileUser% -pw %CompilePwd% -r %TarDir%\%PackName%\as2.0_x64\appcom\* %CompileIp%:/home/%CompileUser%/appcom 2>>%LogDir%\ftp_error.log
rem 编译基础后台
%puttyDir%\plink.exe -ssh -l %CompileUser% -pw %CompilePwd% -m %SrcDir%\autopack\后台编译命令\srcjc_cmd.txt %CompileIp% >%LogDir%\srcBASE_error.log 2>>&1
echo 编译后台后时间:%time% >>%LogDir%\计算时间.log
goto :eof
rem ==========================下载后台服务===========================================
:DownloadSo
echo 下载后台前时间:%time% >>%LogDir%\计算时间.log
rem 创建appcom目录
if exist "%Workspace%\appcom\" (
rmdir /S /Q "%Workspace%\appcom\"
)
mkdir "%Workspace%\appcom\"
rem 下载base的so
%puttyDir%\pscp.exe -batch -pw %CompilePwd% -r %CompileUser%@%CompileIp%:/home/%CompileUser%/appcom/* %Workspace%\appcom\ <%puttyDir%\a.txt
rem 生成base后台
xcopy /e /q /y %Workspace%\appcom %Workspace%\base\Sources\appcom\
del /q %%Workspace%\base\Sources\appcom\*_hg_*
del /q %Workspace%\base\Sources\appcom\*_qs_*
del /q %Workspace%\base\Sources\appcom\libo4_mc2_topic_api.so
rem 生成MC后台
xcopy /e /q /y %Workspace%\appcom\libo4_mc2_topic_api.so %Workspace%\base\Sources\mc\appcom\
echo 下载后台后时间:%time% >>%LogDir%\计算时间.log
goto :eof
rem ==========================检查错误日志===========================================
:Checklog
echo 输出本次版本包的信息....
echo 本次编译的结果如下(明细的日志请参看附件日志文件):>%LogDir%\..\today.txt
echo =======================================================================================================>>%LogDir%\..\today.txt
type %LogDir%\hsjc_update.sql_%sqlCurDate%.log|find "ORA-"
if "%errorlevel%" equ "0" (
echo 【基础脚本错误】脚本升级失败,错误信息如下,详细报错请见hsjc_update.sql_%sqlCurDate%.log:>>%LogDir%\..\today.txt
type %LogDir%\hsjc_update.sql_%sqlCurDate%.log|find "ORA-" >>%LogDir%\..\today.txt
)
type %LogDir%\hsjc_update.sql_%sqlCurDate%.log|find "SP2-"
if "%errorlevel%" equ "0" (
echo 【基础脚本错误】脚本升级失败,错误信息如下,详细报错请见hsjc_update.sql_%sqlCurDate%.log:>>%LogDir%\..\today.txt
type %LogDir%\hsjc_update.sql_%sqlCurDate%.log|find "SP2-" >>%LogDir%\..\today.txt
)
type %LogDir%\hsjc_update.sql_%sqlCurDate%.log|find "警告"
if "%errorlevel%" equ "0" (
echo 【基础脚本错误】脚本升级失败,错误信息如下,详细报错请见hsjc_update.sql_%sqlCurDate%.log:>>%LogDir%\..\today.txt
type %LogDir%\hsjc_update.sql_%sqlCurDate%.log|find "警告" >>%LogDir%\..\today.txt
)
type %LogDir%\srcBASE_error.log|find "Error "
if "%errorlevel%" equ "0" (
echo 【基础后台编译错误】错误信息如下,详细报错请见附件srcBASE_error.log:>>%LogDir%\..\today.txt
type %LogDir%\srcBASE_error.log|find "Error " >>%LogDir%\..\today.txt
)
type %LogDir%\srcBASE_error.log|find "/usr/bin/ld: cannot find"
if "%errorlevel%" equ "0" (
echo 【基础后台编译错误】错误信息如下,详细报错请见附件srcBASE_error.log.log:>>%LogDir%\..\today.txt
type %LogDir%\srcBASE_error.log.log|find "/usr/bin/ld: cannot find" >>%LogDir%\..\today.txt
)
type %LogDir%\ftp_error.log|find "No such file or directory"
if "%errorlevel%" equ "0" (
echo 【FTP错误】错误信息如下,详细报错请见附件No such file or directory:>>%LogDir%\..\today.txt
type %LogDir%\ftp_error.log|find "No such file or directory" >>%LogDir%\..\today.txt
)
type %LogDir%\ftp_error.log|find "not a directory"
if "%errorlevel%" equ "0" (
echo 【FTP错误】错误信息如下,详细报错请见附件No such file or directory:>>%LogDir%\..\today.txt
type %LogDir%\ftp_error.log|find "not a directory" >>%LogDir%\..\today.txt
)
echo 日志检查完成
goto :eof
rem ==========================打包压缩文件===========================================
:PackPkg
echo 压缩前时间:%time% >>%LogDir%\计算时间.log
if not defined WinRar goto :eof
echo 开始压缩日志...
cd /d %LogDir%\..
if exist today_Base.rar del /Q today_Base.rar
%WinRar% a -r today_Base.rar %PackName:~0,13%\*
echo 压缩日志完成
cd /d %Workspace%
rem 检查到有报错,无论前台、脚本、后台,即还原上次集成SVN版本,退出。
type %Logdir%\..\today.txt|find "错误】"
if "%errorlevel%" equ "0" (
rem 还原上次集成SVN版本,待编译报错修复后从此版本开始编译
copy /y %Logdir%\上次集成SVN版本.txt %Logdir%\..\上次集成SVN版本.txt
exit 1
)
echo 压缩后时间:%time% >>%LogDir%\计算时间.log
goto :eof
rem ==========================提交SVN===========================================
:SVNcommit
rem 检查错误信息,如果有错误,不上传FTP
type %LogDir%\..\today.txt|find "Error 1"
if "%errorlevel%" equ "0" (
exit 1
)
type %LogDir%\..\today.txt|find "ORA-"
if "%errorlevel%" equ "0" (
exit 1
)
type %LogDir%\..\today.txt|find "SP2-"
if "%errorlevel%" equ "0" (
exit 1
)
type %LogDir%\..\today.txt|find "警告"
if "%errorlevel%" equ "0" (
exit 1
)
type %LogDir%\..\today.txt|find "========== 全部重新生成"
if "%errorlevel%" equ "0" (
exit 1
)
type %LogDir%\..\today.txt|find "Error "
if "%errorlevel%" equ "0" (
exit 1
)
type %LogDir%\..\today.txt|find "/usr/bin/ld: cannot find"
if "%errorlevel%" equ "0" (
exit 1
)
type %LogDir%\..\today.txt|find "error:"
if "%errorlevel%" equ "0" (
exit 1
)
type %LogDir%\..\today.txt|find "error"
if "%errorlevel%" equ "0" (
exit 1
)
type %LogDir%\..\today.txt|find "Error: "
if "%errorlevel%" equ "0" (
exit 1
)
type %LogDir%\..\today.txt|find "【错误】"
if "%errorlevel%" equ "0" (
exit 1
)
type %LogDir%\..\today.txt|find "not a directory"
if "%errorlevel%" equ "0" (
exit 1
)
type %LogDir%\..\today.txt|find "No such file or directory"
if "%errorlevel%" equ "0" (
exit 1
)
rem 记录版本信息
if exist %Workspace%\base\Run\updatepkg\版本信息\version.ini (
for /f %%i in (%Workspace%\base\Run\updatepkg\版本信息\version.ini) do (
set aa=%%i
set aa=!aa:subversion=!
if "!aa!" EQU "%%i" (
echo !aa!>>%LogDir%\version1.ini
) else (
call set subversion=%%aa:~1%%
set /a subversion=!subversion!+1
echo subversion=!subversion!>>%LogDir%\version1.ini
)
)
move /y %LogDir%\version1.ini %Workspace%\base\Run\updatepkg\版本信息\version.ini
)
rem 递交记录版本信息
svn commit -m "提交修改单号:M200000000000 修改说明:递交记录版本信息" %Workspace%\base\Run\updatepkg\版本信息\version.ini>>%Logdir%\svnlog_commit.log 2>&1
rem 递交base后台
cd /d %Workspace%\base\Sources\appcom
svn add * --force
svn commit -m "提交修改单号:M200000000000 修改说明:编译生成SO文件提交" %Workspace%\base\Sources\appcom>>%Logdir%\svnlog_commit.log 2>&1
rem 递交mc
cd /d %Workspace%\base\Sources\mc\appcom
svn add * --force
svn commit -m "提交修改单号:M200000000000 修改说明:编译生成MC文件提交" %Workspace%\base\Sources\mc\appcom>>%Logdir%\svnlog_commit.log 2>&1
rem 生成base后台
cd /d %Workspace%\base\Sources\Script
svn add * --force
svn commit -m "提交修改单号:M200000000000 修改说明:编译生成脚本文件提交" %Workspace%\base\Sources\Script>>%Logdir%\svnlog_commit.log 2>&1
for /f "tokens=* delims=" %%i in (%Logdir%\svnlog_commit.log) do (
set tt=%%i
set tt=!tt:Commit failed=!
set tt=!tt:svn: E=!
if "!tt!" NEQ "%%i" (
echo 提交SVN时报错,请配管检查!!!>>%Logdir%\..\today.txt
exit 1
)
)
echo 提交SVN成功
goto :eof