FusionForge

Difference between revisions of "Tools/BuildBot"

From FusionForge Wiki
Jump to: navigation, search
(Updated with current info)
(Add structure)
Line 1: Line 1:
Jenkins interface : http://buildbot.fusionforge.org/ (gives a list of different build queues)
+
[http://buildbot.fusionforge.org/ buildbot.fusionforge.org] hosts a Jenkins instance, handling the different build queues.
  
Configuration of the builds (TODO: check me):
 
* physical box: miromesnil.gnurandal.net
 
* buildbot VM (using KVM): vladimir.gnurandal.net
 
* ssh port : 10022
 
  
In the VM :
+
== Hosting ==
* user jenkins ($HOME=/var/lib/jenkins)
 
* ~jenkins/jobs contains the different job configurations
 
* for instance ~jenkins/jobs/fusionforge-master-src-debian8/config.xml runs https://fusionforge.org/plugins/scmgit/cgi-bin/gitweb.cgi?p=fusionforge/fusionforge.git;a=blob;f=tests/scripts/fusionforge-build-and-test-src-deb.sh;hb=HEAD
 
  
We also use [[LXC]], using a bridge setup with DHCP.
+
* Physical box: miromesnil.gnurandal.net
 +
* KVM VM: vladimir.gnurandal.net
 +
* SSH port: 10022
  
It's rather using standard Jenkins setup, with the pipeline plugin.
+
== Jenkins configuration ==
There are :
+
 
* tasks to build lxc templates
+
* user: jenkins (<tt>$HOME=/var/lib/jenkins</tt>)
* 3rd party software
+
* <tt>~jenkins/jobs</tt> contains the different job configurations; for instance <tt>~jenkins/jobs/fusionforge-master-src-debian8/config.xml</tt> runs [https://fusionforge.org/plugins/scmgit/cgi-bin/gitweb.cgi?p=fusionforge/fusionforge.git;a=blob;f=tests/scripts/fusionforge-build-and-test-src-deb.sh;hb=HEAD fusionforge-build-and-test-src-deb.sh]
 +
* pipeline plugin.
 +
 
 +
== Builds ==
  
It is meant to have the following build order:
+
Intended build order:
  
 
  unittests
 
  unittests
Line 24: Line 22:
 
   → src build on debian7 → src build on debian8
 
   → src build on debian7 → src build on debian8
  
* build in 'src' case: a 'source install' using install-ng
+
* The scripts reinstall FusionForge from scratch using [[LXC]], using a bridge setup with DHCP.
* build in 'pkg' case: a pkg build + a pkg install
+
* src: a 'source install' using <tt>install-ng</tt>
* at the end of each build, Selenium tests are executed
+
* pkg: a pkg build + a pkg install
 +
* at the end of each build, units and selenium tests are executed
 
* if the build is ok, the result is put in a repository
 
* if the build is ok, the result is put in a repository
  
TODO/wish list:
+
Other tasks:
 +
* Stand-alone LXC templates build
 +
* 3rd party software
 +
 
 +
== Todo/Wishlist ==
 +
 
 
* Automate task creation maybe using dsl plugin
 
* Automate task creation maybe using dsl plugin
 
** improve the Jenkins plugin to pilot/setup Jenkins
 
** improve the Jenkins plugin to pilot/setup Jenkins
Line 40: Line 44:
 
* [[Virtual machine development environment]]: run the test suite in a complete preconfigured environment
 
* [[Virtual machine development environment]]: run the test suite in a complete preconfigured environment
 
* [[Test_Suite]]: what tests are run
 
* [[Test_Suite]]: what tests are run
 +
* [http://jenkins-ci.org/ Jenkins homepage]
  
 
[[Category:Development]]
 
[[Category:Development]]

Revision as of 15:33, 30 June 2014

buildbot.fusionforge.org hosts a Jenkins instance, handling the different build queues.


Hosting

  • Physical box: miromesnil.gnurandal.net
  • KVM VM: vladimir.gnurandal.net
  • SSH port: 10022

Jenkins configuration

  • user: jenkins ($HOME=/var/lib/jenkins)
  • ~jenkins/jobs contains the different job configurations; for instance ~jenkins/jobs/fusionforge-master-src-debian8/config.xml runs fusionforge-build-and-test-src-deb.sh
  • pipeline plugin.

Builds

Intended build order:

unittests
  → src build on centos5 → src build on centos6
  → src build on debian7 → src build on debian8
  • The scripts reinstall FusionForge from scratch using LXC, using a bridge setup with DHCP.
  • src: a 'source install' using install-ng
  • pkg: a pkg build + a pkg install
  • at the end of each build, units and selenium tests are executed
  • if the build is ok, the result is put in a repository

Other tasks:

  • Stand-alone LXC templates build
  • 3rd party software

Todo/Wishlist

  • Automate task creation maybe using dsl plugin
    • improve the Jenkins plugin to pilot/setup Jenkins
    • put/visualize result in FRS
  • Use master/slave Jenkins capability to enable parallel builds
  • Try Buildbot as a Jenkins alternative

See also