Difference between revisions of "Debian builds with Jenkins"

From PDP/Grid Wiki
Jump to navigationJump to search
(goal)
 
(prereq)
Line 1: Line 1:
 
== Goals ==
 
== Goals ==
  
The aim of this work was to ease and automate the way debian packages are created for the supported middleware security software. Just like the [[Koji Testbed]] for automated RPM packaging, a similar solution was proposed with the use of Jenkins. A Jenkins job can be configured for every component which can be run on a debian slave machine. This job can than be used to create packages for multiple distributions and architectures in a clean environment with the use of [https://wiki.debian.org/cowbuilder cowbuilder]. Much of this work was built on top of the debian building procedure already outlined [[SAC Debian packaging|before]].
+
The aim of this work was to ease and automate the way debian packages are created for the supported middleware security software. Just like the [[Koji Testbed]] for automated RPM packaging, a similar solution was proposed with the use of Jenkins. A Jenkins job can be configured for every component which can be run on a ''debian build node''. This job can than be used to create packages for multiple distributions and architectures in a clean environment with the use of [https://wiki.debian.org/cowbuilder cowbuilder]. Much of this work was built on top of the debian building procedure already outlined [[SAC Debian packaging|before]].
  
 
== Prerequisites ==
 
== Prerequisites ==
 +
 +
There are a couple of prerequisites assumed to be already in place:
 +
 +
* [[Jenkins Setup|Jenkins]] configured with [[OpenStack Cluster|OpenStack]]
 +
* Additional Jenkins plugins
 +
** [https://wiki.jenkins-ci.org/display/JENKINS/EnvInject+Plugin EnvInject] for environmental variable injection
 +
** [https://wiki.jenkins-ci.org/display/JENKINS/Matrix+Project+Plugin Matrix Project] for multi configuration jobs
 +
** [https://wiki.jenkins-ci.org/display/JENKINS/Subversion+Plugin Subversion] and [https://wiki.jenkins-ci.org/display/JENKINS/Git+Plugin Git] support
 +
** [https://wiki.jenkins-ci.org/display/JENKINS/Configuration+Slicing+Plugin Configuration Slicing] for easier maintenance
 +
'''Note:''' The use of [https://wiki.jenkins-ci.org/display/JENKINS/Debian+Package+Builder+Plugin Debian Package Builder] has been discarded due to its limitation on not using a clean build environment
 +
* The latest stable debian image (jessie at the time) configured as Jenkins slave (''debian build node'')
 +
* Software installed on the ''debian build node''
 +
** [http://jenkins-debian-glue.org jenkins-debian-glue] (build script wrappers)
 +
** Packages required for debian package building:
 +
apt-get install dh-make autotools-dev dh-autoreconf build-essentials devscripts cdbs quilt \
 +
                debhelper fakeroot linitan pbuilder cowbuilder svn_buildpackage maven_debian_helper
  
 
== Package building jobs ==
 
== Package building jobs ==

Revision as of 14:42, 12 May 2015

Goals

The aim of this work was to ease and automate the way debian packages are created for the supported middleware security software. Just like the Koji Testbed for automated RPM packaging, a similar solution was proposed with the use of Jenkins. A Jenkins job can be configured for every component which can be run on a debian build node. This job can than be used to create packages for multiple distributions and architectures in a clean environment with the use of cowbuilder. Much of this work was built on top of the debian building procedure already outlined before.

Prerequisites

There are a couple of prerequisites assumed to be already in place:

Note: The use of Debian Package Builder has been discarded due to its limitation on not using a clean build environment

  • The latest stable debian image (jessie at the time) configured as Jenkins slave (debian build node)
  • Software installed on the debian build node
apt-get install dh-make autotools-dev dh-autoreconf build-essentials devscripts cdbs quilt \
                debhelper fakeroot linitan pbuilder cowbuilder svn_buildpackage maven_debian_helper

Package building jobs

Build source

Build binaries

Problems and Solution