| 1 | == Machines |
| 2 | |
| 3 | === autobuild-jenkins |
| 4 | |
| 5 | * Ubuntu Server 12.04, amd64 |
| 6 | * Jenkins |
| 7 | * [[https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins+on+Ubuntu|Installation instructions]] |
| 8 | * Latest version from non-stable apt repository |
| 9 | * Plugins: TODO |
| 10 | * Packages from the BuildInstructions page to build the game |
| 11 | |
| 12 | === autobuild-win7 |
| 13 | |
| 14 | * Windows 7 Professional, 64-bit |
| 15 | * Visual Studio 2010 Professional SP1 |
| 16 | * Java JRE 7 |
| 17 | * [[https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins+as+a+Windows+service#InstallingJenkinsasaWindowsservice-InstallSlaveasaWindowsservice%28require.NET2.0framework%29|Install Jenkins slave agent service]] |
| 18 | * [[http://msysgit.github.com/|Git for Windows]] (options: no Explorer integration, don't add to path, core.autocrlf=true) |
| 19 | * Set up SSH: |
| 20 | * Open Git Bash |
| 21 | * "ssh-keygen -t rsa" |
| 22 | * "ssh username@autobuild-jenkins", accept key |
| 23 | * Copy C:\Users\Username\.ssh to C:\Program Files (x86)\Git\.ssh |
| 24 | |
| 25 | == Physical layout |
| 26 | |
| 27 | autobuild-jenkins, autobuild-win7 are !VirtualBox VMs running on the same physical machine. They each have a NAT connection to the internet, and a host-only network connection between themselves and the host. |
| 28 | |
| 29 | The physical machine runs Xubuntu desktop 12.04, amd64. |
| 30 | |
| 31 | == Jenkins jobs |
| 32 | |
| 33 | On every commit to a trusted branch, it should: |
| 34 | * Build on Linux to detect build errors (some combinations of x86 vs amd64, pch vs non-pch, old GCC vs new GCC vs Clang, etc) |
| 35 | * Build on Windows (currently just VS2010, x86) |
| 36 | * Upload binaries to somewhere, somehow |
| 37 | * Build on weird platforms (BSD, OS X, Android) if anyone cares about them |
| 38 | |
| 39 | Periodically it should: |
| 40 | * Run Doxygen on master, upload generated docs to web server |
| 41 | |
| 42 | On demand it should: |
| 43 | * Create releases packages: get the code/data from a requested release branch, get the associated Windows binaries, build public.zip, build tarballs and Windows installer, upload to web server |