Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.
Preface 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, dis- tributed builds and security are applicable no matter what language you are using. 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 as- similating 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 Integra- tion 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 met- rics. Next, we move on to more advanced build techniques such as matrix builds, dis- tributed builds and cloud-based CI, before discussing how to implement Continuous Deployment with Jenkins. Finally, we cover some tips on maintaining your Jenkins server. xv