jenkins the definitive guide

(Jeff_L) #1

Preface


1. Audience


This book is aimed at relatively technical readers, though no prior experience with Continuous
Integration is assumed. You may be new to Continuous Integration, and would like to learn about the
benefits it can bring to your development team. Or, you might be using Jenkins or Hudson already, and
want to discover how you can take your Continuous Integration infrastructure further.


Much of this book discusses Jenkins in the context of Java or JVM-related projects. Nevertheless, even
if you are using another technology stack, this book should give you a good grounding in Continuous
Integration with Jenkins. We discuss how to build projects using several non-Java technologies,
including as Grails, Ruby on Rails and .NET. In addition, many topics, such as general configuration,
notification, distributed builds and security are applicable no matter what language you are using.


2. Book Layout


Continuous Integration is like a lot of things: the more you put in, the more value you will get out. While
even a basic Continuous Integration setup will produce positive improvements in your team process,
there are significant advantages to gradually assimilating and implementing some of the more advanced
techniques as well. To this end, this book is organized as a progressive trek into the world of Continuous
Integration with Jenkins, going from simple to more advanced. In the first chapter, we start off with a
sweeping overview of what Jenkins is all about, in the form of a high-level guided tour. From there,
we progress into how to install and configure your Jenkins server and how to set up basic build jobs.
Once we have mastered the basics, we will delve into more advanced topics, including automated testing
practices, security, more advanced notification techniques, and measuring and reporting on code quality
metrics. Next, we move on to more advanced build techniques such as matrix builds, distributed builds
and cloud-based CI, before discussing how to implement Continuous Deployment with Jenkins. Finally,
we cover some tips on maintaining your Jenkins server.


3. Jenkins or Hudson?


As we discuss in the introduction, Jenkins was originally, and up until recently, known as Hudson. In
2009, Oracle purchased Sun and inherited the code base of Hudson. In early 2011, tensions between
Oracle and the open source community reached rupture point and the project forked into two separate
entities: Jenkins, run by most of the original Hudson developers, and Hudson, which remained under
the control of Oracle.


As the title suggests, this book is primarily focused on Jenkins. However, much of the book was initially
written before the fork, and the products remain very similar. So, although the examples and illustrations
do usually refer to Jenkins, almost all of what is discussed will also apply to Hudson.

Free download pdf