summaryrefslogtreecommitdiffstats
path: root/Nightbuild2008.cmd
diff options
context:
space:
mode:
Diffstat (limited to 'Nightbuild2008.cmd')
-rw-r--r--Nightbuild2008.cmd77
1 files changed, 51 insertions, 26 deletions
diff --git a/Nightbuild2008.cmd b/Nightbuild2008.cmd
index b1d5ad3e7..fdd5d3de1 100644
--- a/Nightbuild2008.cmd
+++ b/Nightbuild2008.cmd
@@ -2,12 +2,16 @@
:: 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.
:: These sub-scripts are used:
-:: - WCRev.cmd together with subwcrev templating to obtain the version number as an environment var
-:: - UploadVersion.ftp FTP command template for uploading the version to the web (not included in the SVN, because it contains confidential passwords! Use your own :)
+:: - UploadVersion.ftp FTP command template for uploading the version to the 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
::
-:: This script expects a few tools on specific paths, you can pass the correct paths for your system as env vars "zip", "vc" and "tsvn"
+:: 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
:: 7-zip executable (by default it should be on PATH):
@@ -16,14 +20,21 @@ if %zip%a == a set zip=7z
:: Visual C++ compiler executable name:
if %vc%a == a set vc="vcbuild.exe"
-:: TortoiseProc executable (for updating to the latest version):
-if %tsvn%a== a set tsvn="c:\program files\tortoisesvn\bin\tortoiseproc.exe"
-:: Subwcrev (from TortoiseSVN, for querying revision number; by default in PATH):
-if %subwcrev%a == a set subwcrev=subwcrev
+:: Get the date and time into vars:
+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 MYYEAR = %MYYEAR%
+echo MYMONTH = %MYMONTH%
+echo MYDAY = %MYDAY%
+echo MYTIME = %MYTIME%
echo Performing nightbuild of MC-Server
@@ -36,31 +47,28 @@ set DONOTPAUSE=y
:: Update the sources to the latest revision:
del source\Bindings.cpp
del source\Bindings.h
-start "tsvn src" /b /min /wait %tsvn% /command:update /path:. /closeonend:1
+git checkout -- source\Bindings.*
+git pull
if errorlevel 1 goto haderror
-:: Copy all *.template files into their non-template versions, substituting SVN keywords:
-for /r %%X in (*.template) do (
- %subwcrev% . "%%X" "%%~dpX%%~nX"
- 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
-:: Get the revision number into WCREV env var
-call Install\WCVersion.cmd
-echo WCREV = %WCREV%
-
-:: Test if the version is already present
-if exist Install\MCServer_Win_%WCREV%.7z (
+:: Test if the version is already present, using a "tagfile" that we create upon successful build
+set TAGFILE=Install\built_%COMMITID%.tag
+if exist %TAGFILE% (
echo Latest version already present, bailing out
goto end
)
-:: Update Bindings.cpp
+:: Update the Bindings:
del source\Bindings.cpp
del source\Bindings.h
echo Updating Lua bindings
@@ -85,16 +93,16 @@ if errorlevel 1 goto haderror
:: Use 7-zip to compress the resulting files into a single file:
-:: Note: the output filename here must be the same as in the upload_win.ftp.template script
+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_%WCREV%.7z -scsWIN @Zip2008.list
+%zip% a -mx9 -y MCServer_Win_%FILESUFFIX%.7z -scsWIN @Zip2008.list
if errorlevel 1 goto haderror
cd ..
:: Also pack PDBs into a separate archive:
-:: Note: the output filename here must be the same as in the upload_win.ftp.template script
-%zip% a -mx9 -y Install\MCServer_Win_%WCREV%_PDBs.7z -scsWIN @Install\Zip2008_PDBs.list
+%zip% a -mx9 -y Install\PDBs_%FILESUFFIX%.7z -scsWIN @Install\Zip2008_PDBs.list
if errorlevel 1 goto haderror
@@ -115,15 +123,32 @@ if "a%ftpsite%" == "a" (
echo You need to set FTP server in the ftpsite environment variable to upload the files
goto end
)
-ncftpput -p %ftppass% -u %ftpuser% -T temp_ %ftpsite% / Install\MCServer_Win_%WCREV%.7z
+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\MCServer_Win_%WCREV%_PDBs.7z
+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
+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