summaryrefslogtreecommitdiffstats
path: root/Nightbuild2008.cmd
blob: a7a2cbc7199f2ecc8bfe834ed2cbe0b052d1e0ed (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
@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.
:: 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 :)
:: 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"


:: 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"

:: 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




echo Performing nightbuild of MC-Server


set DONOTPAUSE=y

:: Update the sources to the latest revision:
start "tsvn src" /b /min /wait %tsvn% /command:update /path:. /closeonend:1
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 revision number into WCREV env var
call Install\WCVersion.cmd
echo WCREV = %WCREV%
 

:: Test if the version is already present
if exist MCServer_Win_%WCREV%.7z (
	echo Latest version already present, bailing out
	goto end
)




:: 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 vc2008\MCServer.sln "Release|Win32"
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
copy VC2008\Release\MCServer.exe MCServer.exe
%zip% a -mx9 -y MCServer_Win_%WCREV%.7z -scsWIN @Install\Zip2008.list
if errorlevel 1 goto haderror

:: 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 MCServer_Win_%WCREV%_PDBs.7z -scsWIN @Install\Zip2008_PDBs.list
if errorlevel 1 goto haderror





:: upload to FTP using the upload_win.ftp (.template) script
ftp -n -s:Install\upload_win.ftp xoft.cz




goto end




:haderror
echo an error was encountered, check command output above
pause
goto finished





:end
if "a%1" == "a" pause



:finished