FlightGear build server: Difference between revisions

From FlightGear wiki
Jump to navigation Jump to search
No edit summary
Line 1: Line 1:
The current source code (from [[Git]]) is automatically compiled - on every commit - by an installation of [http://www.jenkins-ci.org Jenkins] : http://flightgear.simpits.org:8080/


This compiles the current [[FlightGear]] and [[SimGear]] code on Linux, Mac and Windows, checking for compilation problems. Other platforms or compilers could be added if desired, for example FreeBSD, mingw or Intel C++. As part of the Mac and Windows build process, installers are produced and made available to download; these receive no testing or QA, but allow non-developers to run and test the latest code.


In the future, the build server will also be used to automate (and hence, streamline) the release process, so that pre-release, release and bug-fix builds can be produced with minimal manual work.
= What is it ? =


== News (03/2015) ==
FlightGear build server is a system based on [http://www.jenkins-ci.org Jenkins] who help core developpers to check that their source code is correct for all OS.
{{FGCquote
  |I've stood up a new server for Jenkins.  It's got a LOT more drive space and is a considerably faster machine with more resources.
It's currently running the x86_64 version of Fedora 21. It's available at http://grumble.deltasoft.com:8080<br/>


It's running in parallel with the existing Jenkins server - if this can cause issues, let me know and I'll turn it off.
For example, some core developpers are working with Linux and have no access to a Windows installation in order to test if what they have implemented for Linux will works for Windows and even Mac.


I notice that there's a Linux64 build slave listed under the Build Executor list. If the person that set that up wants to tweak it so that it runs locally, it would be a good test I think.
The build server will automatically start a new compilation after every commits pushed in the source code. We have the ability to compile the source code for Linux, Windows and Mac.
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/33466856/
    |title=<nowiki>[Flightgear-devel] Jenkins moving...</nowiki>
    |author=<nowiki>geneb</nowiki>
    |date=<nowiki>2015-02-19</nowiki>
  }}
}}


{{FGCquote
He is also responsible for building release package for Linux, Windows and Mac.
  |I've implemented a webhook who trigger a new release build as soon as a commit is done in a release branch.This webhook is already active on our fgdata repository because I was able to add it myself. However, adding a webhook in flightgear/simgear repository require to get "admin right", that I don't own. I advised James, now it's just a matter of time I think
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/33458967/
    |title=<nowiki>Re: [Flightgear-devel] Release 3.4.0 is coming</nowiki>
    |author=<nowiki>Clement de l'Hamaide</nowiki>
    |date=<nowiki>2015-02-18</nowiki>
  }}
}}


==Automated Installer Creation ==
FlightGear build server is available at: http://build.flightgear.org:8080
As of 08/2013, we have automatically generated installers / files for:
* Linux
* Mac
* Windows


Get them from here: (updated automatically) http://fgfs.goneabitbursar.com/releases/


The server can handle plenty of people downloading (unlike Jenkins  itself). Please file bugs in the tracker or report them here.


== Nightly builds ==
= Users info =


* [http://flightgear.simpits.org:8080/view/Mac/job/FlightGear-mac/ Current Mac nightly build]
As a user you can help developpers to track bugs from the latest source code, by tracking bugs you would report them on the [[mailing list]] or [http://flightgear-bugs.googlecode.com/ bug tracker] (not the forums).
* [http://flightgear.simpits.org:8080/job/Windows-nightly/ Current Windows nightly build]


Note there are no nightly builds for Linux - please [[Building FlightGear - Linux|build from source]], most easily with [[Scripted Compilation on Linux Debian/Ubuntu|Ubuntu download and compile.sh]] (TODO: discuss OpenSuse BuildStudio!)
But take care to mention that you're using a nightly build, and to specify when it was built (you can find details in FlightGear's Help > About dialog):


In each case the installer contains all the code required (including [[OSG]], [[OpenAL]] and so on) and the main FlightGear program, but '''no''' data directory. The Mac installer also lacks a launcher application, i.e can only be used from the Terminal. These builds are not intended for novice users - familiarity with FlightGear, especially the command-line arguments necessary to specify the data dir and scenery, is assumed.
[[File:About-dlg-2.10.png|180px]]


In general the data directory (fgdata) should be no older than the nightly build, or problems may arise, eg missing files or incompatible Nasal scripts.
If you are interested in this job you want to follow these instructions:


When running a build, please do report problems via the developer [[mailing list]] or [http://flightgear-bugs.googlecode.com/ bug tracker] (not the forums), but take care to mention that you're using a nightly build, and to specify when it was built (you can find details in FlightGear's Help > About dialog):
=== Linux ===
Well, unfortunately there is nothing interesting for you here :)  


[[File:About-dlg-2.10.png]]
Because Linux users have a powerful tools to compile and use the latest cource code, give a look at [[Scripted_Compilation_on_Linux_Debian/Ubuntu]]


== Automated Testing ==
=== Mac ===
You need 2 things to run the latest source code: the compiled source code and the data.


After successfully compiling the sources, all available unit tests are executed. The full test output is available in the build workspace (On each project page there is a workspace icon), e.g.:


* http://flightgear.simpits.org:8080/job/SimGear/ws/sgBuild/Testing/Temporary/LastTest.log
You can download the compiled source code at: [http://build.flightgear.org:8080/view/Mac/job/FlightGear-mac/lastSuccessfulBuild/artifact/ FlightGear Mac nightly build]
* http://flightgear.simpits.org:8080/job/SimGear-mac/ws/sgBuild/Testing/Temporary/LastTest.log
 
You can download the data with git: git clone https://git.gitorious.org/fg/fgdata.git
 
=== Windows ===
You need 2 things to run the latest source code: the compiled source code and the data.
 
 
You can download the compiled source code at: [http://build.flightgear.org:8080/view/Windows/job/Windows-nightly/lastSuccessfulBuild/artifact/Output/ FlightGear Windows nightly build]
 
You can download the data with git: git clone https://git.gitorious.org/fg/fgdata.git
 
 
 
= Developpers info =
 
Here is a brief summary about the configuration of Jenkins.
 
If need anything you would contact either James, Gene or Clément (the mailing list is a good place to contact them if you don't know where to look at them)
 
=== master ===
The ''master'' is the processus who manage the distribution of build among slaves.
 
Basically, his job is to be connected to his slaves and ask them to execute jobs who have been configured.
 
=== Linux ===
This is the Linux slave. In reality it is the same machine than ''master'' but with another login. That's why we want the SSH connection on ''localhost''.
 
This slave is configured to work in /home/jenkins, that's where we have plenty of free space disk on this machine.
 
=== Mac ===
This is the Mac slave.
 
=== Windows ===
This is the Windows slave. He is located in the same LAN than master/Linux slave. There is MSVC2010 installed.
 
This slave is configured to work in G:\jenkins, that's where we have plenty of free space disk on this machine.
 
 
== Release process ==
 
The Linux slave has the responsability to provide the base-package for the Linux-release and Windows-release job.
 
Because the Linux and Windows slave are in the same LAN it's not a problem to exchange 1GB on the network.
 
 
Windows-release, Mac-release and Linux-release have to be triggered by-hand. The result is automatically uploaded to http://fgfs.goneabitbursar.com/releases/


== Related Discussions ==
* http://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg27592.html
* http://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg27918.html
* http://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg28260.html7
* http://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg40650.html


[[Category:Core developer documentation]]
[[Category:Core developer documentation]]

Revision as of 20:34, 21 February 2015


What is it ?

FlightGear build server is a system based on Jenkins who help core developpers to check that their source code is correct for all OS.

For example, some core developpers are working with Linux and have no access to a Windows installation in order to test if what they have implemented for Linux will works for Windows and even Mac.

The build server will automatically start a new compilation after every commits pushed in the source code. We have the ability to compile the source code for Linux, Windows and Mac.

He is also responsible for building release package for Linux, Windows and Mac.

FlightGear build server is available at: http://build.flightgear.org:8080


Users info

As a user you can help developpers to track bugs from the latest source code, by tracking bugs you would report them on the mailing list or bug tracker (not the forums).

But take care to mention that you're using a nightly build, and to specify when it was built (you can find details in FlightGear's Help > About dialog):

About-dlg-2.10.png

If you are interested in this job you want to follow these instructions:

Linux

Well, unfortunately there is nothing interesting for you here :)

Because Linux users have a powerful tools to compile and use the latest cource code, give a look at Scripted_Compilation_on_Linux_Debian/Ubuntu

Mac

You need 2 things to run the latest source code: the compiled source code and the data.


You can download the compiled source code at: FlightGear Mac nightly build

You can download the data with git: git clone https://git.gitorious.org/fg/fgdata.git

Windows

You need 2 things to run the latest source code: the compiled source code and the data.


You can download the compiled source code at: FlightGear Windows nightly build

You can download the data with git: git clone https://git.gitorious.org/fg/fgdata.git


Developpers info

Here is a brief summary about the configuration of Jenkins.

If need anything you would contact either James, Gene or Clément (the mailing list is a good place to contact them if you don't know where to look at them)

master

The master is the processus who manage the distribution of build among slaves.

Basically, his job is to be connected to his slaves and ask them to execute jobs who have been configured.

Linux

This is the Linux slave. In reality it is the same machine than master but with another login. That's why we want the SSH connection on localhost.

This slave is configured to work in /home/jenkins, that's where we have plenty of free space disk on this machine.

Mac

This is the Mac slave.

Windows

This is the Windows slave. He is located in the same LAN than master/Linux slave. There is MSVC2010 installed.

This slave is configured to work in G:\jenkins, that's where we have plenty of free space disk on this machine.


Release process

The Linux slave has the responsability to provide the base-package for the Linux-release and Windows-release job.

Because the Linux and Windows slave are in the same LAN it's not a problem to exchange 1GB on the network.


Windows-release, Mac-release and Linux-release have to be triggered by-hand. The result is automatically uploaded to http://fgfs.goneabitbursar.com/releases/