FlightGear build server: Difference between revisions

From FlightGear wiki
Jump to navigation Jump to search
mNo edit summary
(added SF release candidate URL)
 
(31 intermediate revisions by 9 users not shown)
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/
{{Release}}
The '''FlightGear build server''', sometimes called the '''nightly build server''' or just '''Jenkins''', is a system based on [http://www.jenkins-ci.org Jenkins] which helps core developers to check that their source code compiles correctly for all OS. It is also responsible for building release packages for Linux, Windows and Mac.


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.
{{Note|
The output files on Jenkins download.flightgear.org and sf.net should always be the same. Jenkins pushes them to download.flightgear.org from where they get distributed to sf.net (with some renaming-magic involved). Direct dowloads from Jenkins should be avoided as much as possible. <ref>{{cite web
  |url    =  https://sourceforge.net/p/flightgear/mailman/message/35539513/
  |title  =  <nowiki> Re: [Flightgear-devel] [from forum] Torrenting FlightGear </nowiki>
  |author =  <nowiki> Torsten Dreyer </nowiki>
  |date  =  Dec 8th, 2016
  |added =  Dec 8th, 2016
  |script_version = 0.36
  }}</ref>


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.
}}


== Nightly builds ==
Some core developers 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 or Mac. The build server will automatically start a new compilation after each commit is pushed to the source code repository. We have the ability to compile the source code for Linux, Windows and Mac.


* [http://flightgear.simpits.org:8080/view/Mac/job/FlightGear-mac/ Current Mac nightly build]
A "nightly build" is one that is automatically generated each night (hence the name) from the most recent code. Since it has not received as much testing as normal FlightGear versions, you might encounter some bugs; on the contrary, you get access to the latest-and-greatest features before they are officially released.
* [http://flightgear.simpits.org:8080/job/Win32-installer-Cmake/ Current Win32 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!)
<ref>{{cite web
  |url    = https://forum.flightgear.org/viewtopic.php?p=283958#p283958
  |title  = <nowiki>Re: Tutorial: How to get Aircraft Center to work</nowiki>
  |author = <nowiki>elgaton</nowiki>
  |date  = May 1st, 2016
  |added  = May 7th, 2016
  |script_version = 0.34
  }}
</ref>


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.
== News (06/2015) ==
{{Main article|Building FlightGear - Cross Compiling}}
{{FGCquote
  |mingw has came a long way, and i think the MXE openscenegraph package (currently at 3.2.1 on master!!), is beautifully maintained, now it builds almost all core libraries dynamically with some argument passing, even as a static target(MXE_TARGETS{{=}}'i686-w64-mingw32.static'), but it's those plugins again, with their linking errors! i think these are because i'm using the i686-w64-mingw32.static-g++ compiler as opposed to the shared one...<br/>
<br/>
so as soon as i can get the shared build environment running and solve all of it's dependancies for OSG, i think we can have a cross compiller in our hands!
  |{{cite web |url=http://forum.flightgear.org/viewtopic.php?p=242914#p242914
    |title=<nowiki>Re: [SOLVED] Install osgEarth feature on Win7 64b with FG gi</nowiki>
    |author=<nowiki>hamzaalloush</nowiki>
    |date=<nowiki>Thu May 14</nowiki>
  }}
}}


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.
== SourceForge release candidate ==


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):
As of 2018.1 release candidates are available from sourceforce https://sourceforge.net/projects/flightgear/files/release-candidate/ <https://sourceforge.net/projects/flightgear/files/release-candidate/>;<br/>


[[File:About-dlg-2.10.png]]
== Where to find it ==
The FlightGear build server is available at: {{build link}}. There is no artifact available because we don't want copy +1GB to Jenkins master each days. This job is executed once per day.


== Related Discussions ==
 
* http://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg27592.html
You can get the artifact at {project infrastructure|buildserver}}
* http://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg27918.html
 
* http://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg28260.html
{{FGCquote
  |We’ve improved the tool around daily build creation. Still some progress to be done but daily builds for Mac and Windows are uploaded to:<br/>
<br/>
https://sourceforge.net/projects/flightgear/files/unstable/
<br/>
(And hence, all the SF mirrors)<br/>
<br/>
And also directly available from:<br/>
<br/>
http://download.flightgear.org/builds/nightly/ <http://download.flightgear.org/builds/nightly/>;<br/>
<br/>
The ‘latest’ files in that directory are stable symlink, I am currently writing a descriptive web-page which will point to them since we expect the patch version number to evolve during 3.5 development (and I will be testing this soon, mostly to see what breaks!)<br/>
<br/>
All the usual caveats about un-tested code apply - although we will probably add some warnings over time to the builds themselves (splash screen etc) to remind people they’re not using a stable release.
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/33628128/
    |title=<nowiki>[Flightgear-devel] Daily builds update</nowiki>
    |author=<nowiki>James Turner</nowiki>
    |date=<nowiki>2015-03-23</nowiki>
  }}
}}
 
== User info ==
[[File:About-dlg-2.10.png|180px|thumb|The about dialog]]
 
As a user you can help developers to track bugs from the latest source code, by tracking bugs you would report them on the [[mailing list]] or [http://sourceforge.net/p/flightgear/codetickets/ bug tracker] (not the forums).
 
{{FGCquote
  |The [[Integrated Qt5 Launcher |GUI launcher]] included in these builds includes a new dialog to setup (and remember) the FGRoot using file picker. It does some version checking to hopefully make things as robust as possible for the user.
  |{{cite web |url=http://sourceforge.net/p/flightgear/mailman/message/33646906/
    |title=<nowiki>Re: [Flightgear-devel] Download description page</nowiki>
    |author=<nowiki>James Turner</nowiki>
    |date=<nowiki>2015-03-26</nowiki>
  }}
}}
 
{{note|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)}}
 
If you are interested in doing this please follow these instructions:
 
=== Linux ===
Well, unfortunately there is nothing interesting for you here :)
 
Because Linux users have powerful tools to compile and use the latest source code, take a look at [[Scripted_Compilation_on_Linux_Debian/Ubuntu]]
 
=== Mac ===
You need two things to run the latest source code: The compiled source code and the data.
 
* You can download the compiled source code at: [http://download.flightgear.org/builds/nightly/ FlightGear Mac nightly build]
* You can download the data with git: <code>{{fgdata clone}}</code>
 
=== Windows ===
You need two things to run the latest source code: The compiled source code and the data.
 
* You can download the compiled source code at: [http://download.flightgear.org/builds/nightly/ FlightGear Win nightly build download]
* You can download the data with git: <code>{{fgdata clone}}</code>
 
== Developer 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'' manages the distribution of builds among the slaves.
 
Basically, its job is to be connected to the slaves and ask them to execute the jobs which have been configured.
 
=== Linux ===
This is the Linux slave based on Fedora 21. 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 <code>/home/jenkins</code>, 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 based on Windows Server 2008. It is located in the same LAN than master/Linux slave. There is MSVC2010 installed.
 
This slave is configured to work in <code>G:\jenkins</code>, that's where we have plenty of free space disk on this machine.
 
=== Release process ===
The Linux slave has the responsibility to provide the base-package for the Linux-release and Windows-release job.
 
Because the Linux and Windows slave are on the same LAN it is not a problem to exchange 1 GB on the network.
 
<code>Windows-release</code>, <code>Mac-release</code> and <code>Linux-release</code> have to be triggered by-hand. The result is automatically uploaded to http://fgfs.goneabitbursar.com/releases/.
 
[[Category:Core developer documentation]]
[[Category: Release]]

Latest revision as of 10:28, 29 March 2018

The FlightGear build server, sometimes called the nightly build server or just Jenkins, is a system based on Jenkins which helps core developers to check that their source code compiles correctly for all OS. It is also responsible for building release packages for Linux, Windows and Mac.

Note

The output files on Jenkins download.flightgear.org and sf.net should always be the same. Jenkins pushes them to download.flightgear.org from where they get distributed to sf.net (with some renaming-magic involved). Direct dowloads from Jenkins should be avoided as much as possible. [1]


Some core developers 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 or Mac. The build server will automatically start a new compilation after each commit is pushed to the source code repository. We have the ability to compile the source code for Linux, Windows and Mac.

A "nightly build" is one that is automatically generated each night (hence the name) from the most recent code. Since it has not received as much testing as normal FlightGear versions, you might encounter some bugs; on the contrary, you get access to the latest-and-greatest features before they are officially released.

[2]

News (06/2015)

1rightarrow.png See Building FlightGear - Cross Compiling for the main article about this subject.

Cquote1.png mingw has came a long way, and i think the MXE openscenegraph package (currently at 3.2.1 on master!!), is beautifully maintained, now it builds almost all core libraries dynamically with some argument passing, even as a static target(MXE_TARGETS='i686-w64-mingw32.static'), but it's those plugins again, with their linking errors! i think these are because i'm using the i686-w64-mingw32.static-g++ compiler as opposed to the shared one...


so as soon as i can get the shared build environment running and solve all of it's dependancies for OSG, i think we can have a cross compiller in our hands!


Cquote2.png

SourceForge release candidate

As of 2018.1 release candidates are available from sourceforce https://sourceforge.net/projects/flightgear/files/release-candidate/ <https://sourceforge.net/projects/flightgear/files/release-candidate/>;

Where to find it

The FlightGear build server is available at: http://build.flightgear.org:8080/. There is no artifact available because we don't want copy +1GB to Jenkins master each days. This job is executed once per day.


You can get the artifact at {project infrastructure|buildserver}}

Cquote1.png We’ve improved the tool around daily build creation. Still some progress to be done but daily builds for Mac and Windows are uploaded to:


https://sourceforge.net/projects/flightgear/files/unstable/
(And hence, all the SF mirrors)

And also directly available from:

http://download.flightgear.org/builds/nightly/ <http://download.flightgear.org/builds/nightly/>;

The ‘latest’ files in that directory are stable symlink, I am currently writing a descriptive web-page which will point to them since we expect the patch version number to evolve during 3.5 development (and I will be testing this soon, mostly to see what breaks!)

All the usual caveats about un-tested code apply - although we will probably add some warnings over time to the builds themselves (splash screen etc) to remind people they’re not using a stable release.


— James Turner (2015-03-23). [Flightgear-devel] Daily builds update.
(powered by Instant-Cquotes)
Cquote2.png

User info

The about dialog

As a user you can help developers 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).

Cquote1.png The GUI launcher included in these builds includes a new dialog to setup (and remember) the FGRoot using file picker. It does some version checking to hopefully make things as robust as possible for the user.
— James Turner (2015-03-26). Re: [Flightgear-devel] Download description page.
(powered by Instant-Cquotes)
Cquote2.png
Note  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)

If you are interested in doing this please follow these instructions:

Linux

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

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

Mac

You need two 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 git://git.code.sf.net/p/flightgear/fgdata/

Windows

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

Developer 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 manages the distribution of builds among the slaves.

Basically, its job is to be connected to the slaves and ask them to execute the jobs which have been configured.

Linux

This is the Linux slave based on Fedora 21. 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 based on Windows Server 2008. It 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 responsibility to provide the base-package for the Linux-release and Windows-release job.

Because the Linux and Windows slave are on the same LAN it is not a problem to exchange 1 GB 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/.