Streamline software development with Jenkins, the popular Java-based open source tool that has revolutionized the way teams think about Continuous Integration (CI). This complete guide shows you how to automate your build, integration, release, and deployment processes with Jenkins—and demonstrates how CI can save you time, money, and many headaches.
Ideal for developers, software architects, and project managers, Jenkins: The Definitive Guide is both a CI tutorial and a comprehensive Jenkins reference. Through its wealth of best practices and real-world tips, you'll discover how easy it is to set up a CI service with Jenkins.
Learn how to install, configure, and secure your Jenkins server
Organize and monitor general-purpose build jobs
Integrate automated tests to verify builds, and set up code quality reporting
Establish effective team notification strategies and techniques
Configure build pipelines, parameterized jobs, matrix builds, and other advanced jobs
Manage a farm of Jenkins servers to run distributed builds
Implement automated deployment and continuous delivery
Chapter 1 Introducing Jenkins
Continuous Integration Fundamentals
Introducing Jenkins (née Hudson)
From Hudson to Jenkins—A Short History
Should I Use Jenkins or Hudson?
Introducing Continuous Integration into Your Organization
Where to Now?
Chapter 2 Your First Steps with Jenkins
Preparing Your Environment
Starting Up Jenkins
Configuring the Tools
Your First Jenkins Build Job
Your First Build Job in Action
More Reporting—Displaying Javadocs
Adding Code Coverage and Other Metrics
Chapter 3 Installing Jenkins
Downloading and Installing Jenkins
Preparing a Build Server for Jenkins
The Jenkins Home Directory
Installing Jenkins on Debian or Ubuntu
Installing Jenkins on Red Hat, Fedora, or CentOS
Installing Jenkins on SUSE or OpenSUSE
Running Jenkins as a Stand-Alone Application
Running Jenkins Behind an Apache Server
Running Jenkins on an Application Server
Installing Jenkins as a Windows Service
What’s in the Jenkins Home Directory
Backing Up Your Jenkins Data
Upgrading Your Jenkins Installation
Chapter 4 Configuring Your Jenkins Server
The Configuration Dashboard—The Manage Jenkins Screen
Configuring the System Environment
Configuring Global Properties
Configuring Your JDKs
Configuring Your Build Tools
Configuring Your Version Control Tools
Configuring the Mail Server
Configuring a Proxy
Chapter 5 Setting Up Your Build Jobs
Jenkins Build Jobs
Creating a Freestyle Build Job
Configuring Source Code Management
Running Your New Build Job
Working with Maven Build Jobs
Using Jenkins with Other Languages
Chapter 6 Automated Testing
Automating Your Unit and Integration Tests
Configuring Test Reports in Jenkins
Displaying Test Results
Automated Acceptance Tests
Automated Performance Tests with JMeter
Help! My Tests Are Too Slow!
Chapter 7 Securing Jenkins
Activating Security in Jenkins
Simple Security in Jenkins
Security Realms—Identifying Jenkins Users
Authorization—Who Can Do What
Auditing—Keeping Track of User Actions
Chapter 8 Notification
More Advanced Email Notification
Notification via Notifo
Extreme Feedback Devices
Chapter 9 Code Quality
Code Quality in Your Build Process
Popular Java and Groovy Code Quality Analysis Tools
Reporting on Code Quality Issues with the Violations Plugin
Using the Checkstyle, PMD, and FindBugs Reports
Reporting on Code Complexity
Reporting on Open Tasks
Integrating with Sonar
Chapter 10 Advanced Builds
Parameterized Build Jobs
Multiconfiguration Build Jobs
Generating Your Maven Build Jobs Automatically
Coordinating Your Builds
Build Pipelines and Promotions
Chapter 11 Distributed Builds
The Jenkins Distributed Build Architecture
Master/Slave Strategies in Jenkins
Associating a Build Job with a Slave or Group of Slaves
Using the CloudBees DEV@cloud Service
Chapter 12 Automated Deployment and Continuous Delivery
Implementing Automated and Continuous Deployment
Deploying to an Application Server
Chapter 13 Maintaining Jenkins
Monitoring Disk Space
Monitoring the Server Load
Backing Up Your Configuration
Archiving Build Jobs
Migrating Build Jobs
Appendix Automating Your Unit and Integration Tests
John Ferguson Smart, director of Wakaleo Consulting, helps organizations optimize their Java development practices and infrastructure. He provides training and mentoring in agile development and testing practices such as Continuous Integration, Test Driven Development, Build Automation, and Continuous Deployment.
The animal on the cover of Jenkins: The DefinitiveGuide is an ornate chorus frog (Pseudacrisornata). These small amphibians, only 1–1.5 inches long, can befound on the coastal plains of North America from North Carolina to centralFlorida and eastern Louisiana. They prefer areas of shallow water withoutdense vegetation, such as ponds, roadside ditches, and floodedmeadows.The coloration of ornate chorus frogs varies depending on locale, andindividuals can be predominantly black, white, brown, red, green, or somevariation thereof. All specimens, though, display a dark stripe orcollection of spots running from the nostril to the shoulder through theeye, and most have various other spots or stripes as well. The speciesbreeds from November to March, and the calls of males can be heard from inor near areas of shallow water.Ornate chorus frogs also owe their name to the sound of their matingcall: Pseudacris comes from the ancient Greek for“false locust.” The name was assigned in 1836 by American naturalist JohnEdwards Holbrook after he observed that the rapid shrill sound resembledthat made by the infamous insect.
A good starting point to get the most out of Jenkins.
Easy to understand
Lost Of Images
No real world examples
Comments about O'Reilly Media Jenkins: The Definitive Guide:
Continuous Integration is, nowadays, the de facto software engineering practice that allows a team to quickly react to change and deploy safely to production, in time. Despite this, many teams out there, still ignore its benefits and dare to manually test or not to test at all their products before delivering them to the clients, which then translates into those phone calls at 2AM. Despite being, as a matter of fact, the standard in continuous integration and deployment, the literature available on Jenkins is still very limited, which partially explain why so many companies have little or no knowledge whatsoever about the subject. Jenkins: The Definitive Guide is definitely the right companion for any Build Engineer, or Software Architect, interested in learning about streamlining the build and deployment processes, making it faster for the team to both spot errors and deploy code.
Honestly, I am enthusiast about this book. Despite the fact that it mainly covers Java (see below for some critics), anyone interested in understanding how Jenkins works will find this title to be a precious guide, from installation up to administration, passing through build pipelines.
Through a simple project (again, see below for some critics), the author, with a winning learn by doing approach, shows the reader how to get everything properly configured and running. I have particularly enjoyed the quantity and quality of the images present. Each feature is clearly explained, step by step. John really makes the reader feel comfortable. The concepts are clearly presented and, page after page, they flow smoothly. The reader really feels like getting taught by a friend.
Enough with the praises. A couple of bad notes that, anyway, don't lower the rating of this precious gem. First, the project used by the author to introduce Jenkins to us is very small. True, it is more complex that an Hello World, but the book definitely lacks real world examples. Mainly, it lacks examples on distributed scenarios.
Second, and this is not really a critic but a simply note to the readers, the book mainly focuses on Java, that is Maven and Ant. True, Jenkins is a Java application but through the years it has grown so much that now, through plugins, it can be used practically for anything, from Python to Ruby on Rails. Many chapters are dedicated purely on how to configure Jenkins for a Java project, so that, while certainly an interesting read, if the reader plans to get Jenkins to build anything that is not Java, he will most likely end up googling.
Overall a very good book. I personally do recommend it to any Build Engineer that has to take care of anything related to Java. On the other hand, this book is a little overkill if the team does work mostly with other programming languages.
As usual, you can find more reviews on my personal blog: http://books.lostinmalloc.com Feel free to pass by and share your thoughts!
Bottom Line Yes, I would recommend this to a friend