Boost your build with BuildBoost – A guide to finally get rid of your build headaches
Session 60'
Abstract
To successfully implement Continuous Integration and Delivery, one needs to set up a system that performs automated builds and deployments tailored to the project at hand. This is usually a cumbersome task that involves a lot of scripting and hacking. In other words, a lot of effort and time needs to be invested in advance. Although this effort pays off in the long run, there is enormous potential for improvement in developing and setting up Continuous Integration and Delivery systems.
Continuous Integration and Delivery systems are software systems. Similar to the developments of any other software system, established and efficient methods, tools and languages must be used. This includes, to name only some, proper testing and debugging support, reuse of components and libraries, versioning, packaging as well as Continuous Integration and Delivery of the Continuous Integration and Delivery system itself.
In this talk we present BuildBoost, a Java/Ant-based open-source framework and meta-build tool to achieve this. BuildBoost rigorously follows the concept of 'convention over configuration' to enable minimal-to-zero build configurations. For this, it is based on the principle that all information needed to build an artefact is delivered with the artifact itself and must not be hidden in build scripts. Furthermore, in BuildBoost the build system itself is considered part of the software and thus BuildBoost includes a bootstrap concept that builds the build system itself with the software. This allows a continuous and agile development of the build system itself together with the software system. BuildBoost is a highly extendable framework. It allows to plug-in and to combine several build steps for arbitrary tasks. It already offers a collection of build steps that can be reused and combined to set up build systems for certain tasks within minutes. Since BuildBoost is a framework and not a new technology, it seamlessly integrates with existing technologies such as Ant, Gradle, Maven, Java or Scala. By this, existing build scripts can be smoothly integrated into BuildBoost.
One instantiation of BuildBoost we have developed at DevBoost is a Continuous Integration and Delivery system for Eclipse plugins/OSGi bundles that builds those artefacts from Eclipse projects and delivers them as both p2 and maven repositories. We use this instantiation in the talk to demonstrate BuildBoost and show how you can instantly reuse this instantiation to build your own Eclipse plugins or OSGi bundles.
BuildBoost is licensed under the Eclipse Public License and can therefore be used both for non-commericial and commercial puposes without any restrictions.
Speaker
Jendrik Johannes, Mirko Seifert