diff options
Diffstat (limited to '')
-rw-r--r-- | Nightbuild2008.cmd | 209 |
1 files changed, 0 insertions, 209 deletions
diff --git a/Nightbuild2008.cmd b/Nightbuild2008.cmd deleted file mode 100644 index bbaea0fb7..000000000 --- a/Nightbuild2008.cmd +++ /dev/null @@ -1,209 +0,0 @@ -@echo off -:: Nightbbuild2008.cmd -:: This script is run every night to produce a new version of MCServer, backup its PDB files and upload the packages to web. -:: When run without parameters, this script pauses at the end and waits for a keypress. -:: To run in an automated scheduler, add any parameter to disable waiting for a keystroke -:: -:: The sript creates a symbol store (a database of PDB files) that can be used as a single entry in MSVC's symbol path, -:: then any executable / crashdump built by this script can be debugged and its symbols will be found automatically by MSVC, -:: without the users needing to specify the build version or anything. -:: In order to support pruning the symstore, a per-month store is created, so that old months can be removed when no longer needed. -:: -:: This script expects a few tools on specific paths, you can pass the correct paths for your system as env vars "zip" and "vc" -:: This script assumes that "git", "symstore" and "touch" are available on PATH. -:: git comes from msysgit -:: symstore comes from Microsoft's Debugging Tools for Windows -:: touch comes from unxtools -:: This script is locale-dependent, because it parses the output of "time" and "date" shell commands - - -:: 7-zip executable (by default it should be on PATH): -if %zip%a == a set zip=7z - -:: Visual C++ compiler executable name: -if %vc%a == a set vc="vcbuild.exe" - - - - -:: Check that the required environment vars are available: -if "a%ftppass%" == "a" ( - echo You need to set FTP password in the ftppass environment variable to upload the files - goto haderror -) -if "a%ftpuser%" == "a" ( - echo You need to set FTP username in the ftpuser environment variable to upload the files - goto haderror -) -if "a%ftpsite%" == "a" ( - echo You need to set FTP server in the ftpsite environment variable to upload the files - goto haderror -) - - - - -:: Get the date and time into vars: -:: This is locale-dependent! -For /f "tokens=2-4 delims=/. " %%a in ('date /t') do ( - set MYYEAR=%%c - set MYMONTH=%%b - set MYDAY=%%a -) -For /f "tokens=1-2 delims=/:" %%a in ('time /t') do (set MYTIME=%%a_%%b) - -echo Performing nightbuild of MC-Server - - - - - -set DONOTPAUSE=y - -:: Update the sources to the latest revision: -git pull -if errorlevel 1 goto haderror - - - -:: Update the external plugins to the latest revision: -git submodule update -if errorlevel 1 goto haderror - - - - -:: Get the Git commit ID into an environment var -For /f "tokens=1 delims=/. " %%a in ('git log -1 --oneline --no-abbrev-commit') do (set COMMITID=%%a) -if errorlevel 1 goto haderror - - - -:: Test if the version is already present, using a "tagfile" that we create upon successful build -set TAGFOLDER=Install\%MYYEAR%_%MYMONTH%\ -set TAGFILE=%TAGFOLDER%built_%COMMITID%.tag -echo Tag file: %TAGFILE% -if exist %TAGFILE% ( - echo Latest version already present, bailing out - goto end -) - - - - - -:: Configure the sources to use the MSVC2008 compiler: -cmake -G "Visual Studio 9 2008" . -if errorlevel 1 goto haderror - - - - - -:: Update the Bindings: -echo Updating Lua bindings -del src\Bindings\Bindings.cpp -del src\Bindings\Bindings.h -set ALLTOLUA_WAIT=N -cd src\Bindings -call AllToLua.bat -cd ..\.. - - - - -:: Compile using VC2008 Express. Do a full rebuild. -echo Setting up VS environment... -call "%VS90COMNTOOLS%\vsvars32.bat" -echo Compiling MCServer... -title MCS Nightbuild -start "vc" /b /wait /low /min %vc% /r MCServer.sln "Release|Win32" -if errorlevel 1 goto haderror - - - - -:: Generate the .example.ini files by running the server without any ini files: -cd MCServer -del groups.ini -del settings.ini -del webadmin.ini -echo stop | MCServer -cd .. - - - -:: Copy all the example ini files into the Install folder for zipping: -copy MCServer\groups.ini Install\groups.example.ini -copy MCServer\settings.ini Install\settings.example.ini -copy MCServer\webadmin.ini Install\webadmin.example.ini - - - - -:: Use 7-zip to compress the resulting files into a single file: -set FILESUFFIX=%MYYEAR%_%MYMONTH%_%MYDAY%_%MYTIME%_%COMMITID% -echo FILESUFFIX=%FILESUFFIX% -copy MCServer\MCServer.exe Install\MCServer.exe -cd Install -%zip% a -mx9 -y MCServer_Win_%FILESUFFIX%.7z -scsWIN -i@Zip2008.list -xr!*.git* -if errorlevel 1 goto haderror -cd .. - -:: Also pack PDBs into a separate archive: -%zip% a -mx9 -y Install\PDBs_%FILESUFFIX%.7z -scsWIN @Install\Zip2008_PDBs.list -if errorlevel 1 goto haderror - - - - - -:: upload to the FTP: -:upload -ncftpput -p %ftppass% -u %ftpuser% -T temp_ %ftpsite% / Install\MCServer_Win_%FILESUFFIX%.7z -if errorlevel 1 goto haderror -ncftpput -p %ftppass% -u %ftpuser% -T temp_ %ftpsite% /PDBs Install\PDBs_%FILESUFFIX%.7z -if errorlevel 1 goto haderror -echo Upload finished. - - - - -:: Create the tagfile so that we know that this CommitID has been built already -mkdir %TAGFOLDER% -touch %TAGFILE% - - - - - -:: Add the symbols to a global symbol cache -:: We want per-month symbol caches, so that the old ones can be easily deleted -set SYMBOLS=Symbols\%MYYEAR%_%MYMONTH%\ -echo Storing symbols in %SYMBOLS% - -symstore add /f MCServer\MCServer.* /s %SYMBOLS% /t MCServer -if errorlevel 1 goto haderror - - - -goto end - - - - -:haderror -echo an error was encountered, check command output above -pause -goto finished - - - - - -:end -if "a%1" == "a" pause - - - -:finished
\ No newline at end of file |