Neon/Builder: Difference between revisions

From KDE Community Wiki
(Created page with "Neon uses a Jenkins continuous integration system to build its packages = The Setup = drax.kde.org is the master server, owned by Blue Systems and administrated by KDE Sysa...")
 
No edit summary
Line 6: Line 6:


The code behind build.neon is from [https://github.com/blue-systems/pangea-tooling pangea-tooling] which also runs the code for [http://dci.pangea.pub/ DCI Debian CI], [http://kci.pangea.pub/ KCI Kubuntu CI], [http://aci.pangea.pub/ ACI Appstream CI], and [http://mobile.neon.pangea.pub:8080/ MCI Mobile neon Plasma CI].
The code behind build.neon is from [https://github.com/blue-systems/pangea-tooling pangea-tooling] which also runs the code for [http://dci.pangea.pub/ DCI Debian CI], [http://kci.pangea.pub/ KCI Kubuntu CI], [http://aci.pangea.pub/ ACI Appstream CI], and [http://mobile.neon.pangea.pub:8080/ MCI Mobile neon Plasma CI].
The Jenkins jobs farm off the hard build work to 4 DigitalOcean build servers.
To use the scripts to access Jenkins you will need to set <code>~/.config/pangea-jenkins.json</code> using access key available inside Jenkins to administrators.
= The Jobs =
The Jenkins jobs are created by running the pangea-tooling script <code>jenkins_jobs_update_nci.rb</code>.  This creates some manual Jobs specified in the script such as the ISO jobs but mostly uses factories to create batches of jobs based on archives.
The YAML files in [[https://github.com/blue-systems/pangea-conf-projects pangea-conf-projects]] define what jobs get created.
For each package there is a parent MultiJob which runs some sub jobs.
<code>parent job</code> this is set to checkout the relevant archive from [[https://quickgit.kde.org KDE Git]] as source/ (for Developer Editions), then check out the relevant archive from [[https://packaging.neon.kde.org KDE neon Git]] as packaging/.

Revision as of 14:14, 27 September 2016

Neon uses a Jenkins continuous integration system to build its packages

The Setup

drax.kde.org is the master server, owned by Blue Systems and administrated by KDE Sysadmins. It runs a Jenkins instance which is a Continuous Integration website at build.neon.kde.org that has many jobs to build the packages and run other functions, either on demand or at pre-scheduled intervals.

The code behind build.neon is from pangea-tooling which also runs the code for DCI Debian CI, KCI Kubuntu CI, ACI Appstream CI, and MCI Mobile neon Plasma CI.

The Jenkins jobs farm off the hard build work to 4 DigitalOcean build servers.

To use the scripts to access Jenkins you will need to set ~/.config/pangea-jenkins.json using access key available inside Jenkins to administrators.

The Jobs

The Jenkins jobs are created by running the pangea-tooling script jenkins_jobs_update_nci.rb. This creates some manual Jobs specified in the script such as the ISO jobs but mostly uses factories to create batches of jobs based on archives.

The YAML files in [pangea-conf-projects] define what jobs get created.

For each package there is a parent MultiJob which runs some sub jobs.

parent job this is set to checkout the relevant archive from [KDE Git] as source/ (for Developer Editions), then check out the relevant archive from [KDE neon Git] as packaging/.