Difference between revisions of "Release Build Process"

From FreeSpace Wiki
Jump to: navigation, search
(First draft of the release build process documentation.)
 
(Small tweak to numbering and grouping)
Line 9: Line 9:
 
svn co svn://svn.icculus.org/fs2open/branches/fs2_open_<VERSION> fs2_open_<VERSION>_svn
 
svn co svn://svn.icculus.org/fs2open/branches/fs2_open_<VERSION> fs2_open_<VERSION>_svn
  
4) (Following instructions are once per release per platform) Commit a output filename/versioning commit.
+
3) (Once per release) Commit a output filename/versioning commit.
  
 
https://svn.icculus.org/fs2open?view=rev&revision=9546 should be a complete diff of everything that should be modified.
 
https://svn.icculus.org/fs2open?view=rev&revision=9546 should be a complete diff of everything that should be modified.
  
4) Export at the desired revision from the branch checkout.
+
4) (Following instructions are once per release per platform) Export at the desired revision from the branch checkout.
  
 
cd <CODE DIRECTORY>
 
cd <CODE DIRECTORY>

Revision as of 22:00, 18 April 2013

1) (One time) Create branch for new release.  This is an entirely remote op and can be done from anywhere, by anyone with write access.

svn copy [-r REV] svn://svn.icculus.org/fs2open/trunk/fs2_open svn://svn.icculus.org/fs2open/branches/fs2_open_<VERSION> -m "Copy trunk r<REV> to <VERSION> branch."
# REV is only needed after copy if not just copying the latest HEAD revision in trunk.

2) (Once per platform) Checkout the branch.

cd <CODE DIRECTORY>
svn co svn://svn.icculus.org/fs2open/branches/fs2_open_<VERSION> fs2_open_<VERSION>_svn

3) (Once per release) Commit a output filename/versioning commit.

https://svn.icculus.org/fs2open?view=rev&revision=9546 should be a complete diff of everything that should be modified.

4) (Following instructions are once per release per platform) Export at the desired revision from the branch checkout.

cd <CODE DIRECTORY>
svn up fs2_open_<VERSION>_svn
svn export fs2_open_<VERSION>_svn fs2_open_<VERSION>[_RCx]

5) Follow the specific platform's build method.

Windows:  Currently use MSVC 2008.
Open the .sln, and batch build all configs (Release and Debug Standard, SSE, SSE2) for Freespace2 and Fred2.
-or-
"C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\vcpackages\vcbuild" /nocolor /nologo /rebuild Freespace2.sln "Release|Win32" && \
"C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\vcpackages\vcbuild" /nocolor /nologo /rebuild Freespace2.sln "Debug|Win32" && \
"C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\vcpackages\vcbuild" /nocolor /nologo /rebuild Freespace2.sln "Release SSE|Win32" && \
"C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\vcpackages\vcbuild" /nocolor /nologo /rebuild Freespace2.sln "Debug SSE|Win32" && \
"C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\vcpackages\vcbuild" /nocolor /nologo /rebuild Freespace2.sln "Release SSE2|Win32" && \
"C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\vcpackages\vcbuild" /nocolor /nologo /rebuild Freespace2.sln "Debug SSE2|Win32"
Copy the 2 release exes into the respective debug folder, and archive the 4 exes, the 2 map files, and the 2 pdb files using standard zip compression.
You should end up with three files:  fs2_open_<VERSION>[_RCx].zip (SSE2), fs2_open_<VERSION>[_RCx]_SSE.zip, and fs2_open_<VERSION>[_RCx]_NO-SSE.zip.
MD5 the three zip files into fs2_open_<VERSION>[_RCx].md5.
Upload these 4 files to the mirrors under builds/WIN.

OSX:  Currently use Xcode 3.2.6.
cd <CODE DIRECTORY>/fs2_open_<VERSION>[_RCx]/projects/Xcode
tar -xvzf Frameworks.tgz
/<xcodebuild_path>/xcodebuild -configuration Release && /<xcodebuild_path>/xcodebuild -configuration Debug
Copy .apps from build/Debug and build/Release to a folder names FS2_Open <VERSION>[ RCx].
Use hdiutil to create an archive named FS2_Open-<VERSION>[_RCx].dmg.
hdiutil create FS2_Open-<VERSION>[_RCx].dmg -srcfolder FS2_Open-<VERSION>[_RCx]
MD5 the .dmg file into FS2_Open-<VERSION>[_RCx].md5.
Upload these 2 files to the mirrors under builds/OSX.

Linux/FreeBSD:  Use whichever latest GCC is available and working.
cd <CODE DIRECTORY/fs2_open_<VERSION>[_RCx]
./autogen.sh --enable-debug && make && cp code/fs2_open_<VERSION>[_RCx]_DEBUG ../ && make clean && make distclean && ./autogen.sh && make && cp code/fs2_open_<VERSION>[_RCx] ../
Archive the fs2_open_<VERSION>* binary files into one fs2_open_<VERSION>[_RCx].tar.bz2 file.
MD5 the bz2 file into fs2_open_<VERSION>[_RCx].md5.
Upload these 2 files to the mirros under builds/LINUX or builds/FREEBSD, accordingly.