PacktLib: Jenkins Continuous Integration Cookbook

Jenkins Continuous Integration Cookbook


About the Author

About the Reviewers


Maintaining Jenkins


Using a sacrificial Jenkins instance

Backing up and restoring

Modifying Jenkins configuration from the command line

Reporting overall disc usage

Deliberately failing builds through log parsing

A Job to warn about the disc usage violations through log parsing

Keeping in contact with Jenkins through Firefox

Monitoring through JavaMelody

Keeping a track of the script glue

Scripting the Jenkins command-line interface

Global modifications of Jobs with Groovy

Signaling the need to archive

Enhancing Security


Testing for OWASP's top ten security issues

Finding 500 errors and XSS attacks in Jenkins through fuzzing

Improving security via small configuration changes

Looking at the Jenkins user through Groovy

Working with the Audit Trail plugin

Installing OpenLDAP with a test user and group

Using Script Realm authentication for provisioning

Reviewing project-based matrix tactics via a custom group script

Administering OpenLDAP

Configuring the LDAP plugin

Installing a CAS server

Enabling SSO in Jenkins

Building Software


Plotting alternative code metrics in Jenkins

Running Groovy scripts through Maven

Manipulating environmental variables

Running AntBuilder through Groovy in Maven

Failing Jenkins Jobs based on JSP syntax errors

Configuring Jetty for integration tests

Looking at license violations with RATs

Reviewing license violations from within Maven

Exposing information through build descriptions

Reacting to the generated data with the Post-build Groovy plugin

Remotely triggering Jobs through the Jenkins API

Adaptive site generation

Communicating through Jenkins


Skinning Jenkins with the Simple Theme plugin

Skinning and provisioning Jenkins using a WAR overlay

Generating a home page

Creating HTML reports

Efficient use of views

Saving screen space with the Dashboard plugin

Making noise with HTML5 browsers

An eXtreme view for reception areas

Mobile presentation using Google Calendar

Tweeting the world

Mobile apps for Android and iOS

Getting to know your audience with Google Analytics

Using Metrics to Improve Quality


Estimating the value of your project through Sloccount

Looking for "smelly" code through code coverage

Activating more PMD rulesets

Creating custom PMD rules

Finding bugs with FindBugs

Enabling extra FindBugs rules

Finding security defects with FindBugs

Verifying HTML validity

Reporting with JavaNCSS

Checking style using an external pom.xml

Faking checkstyle results

Integrating Jenkins with Sonar

Testing Remotely


Deploying a WAR file from Jenkins to Tomcat

Creating multiple Jenkins nodes

Testing with Fitnesse

Activating Fitnesse HtmlUnit Fixtures

Running Selenium IDE tests

Triggering Failsafe integration tests with Selenium Webdriver

Creating JMeter test plans

Reporting JMeter performance metrics

Functional testing using JMeter assertions

Enabling Sakai web services

Writing test plans with SoapUI

Reporting SoapUI test results

Exploring Plugins


Personalizing Jenkins

Testing and then promoting

Fun with pinning JS Games

Looking at the GUI Samples plugin

Changing the help of the file system scm plugin

Adding a banner to Job descriptions

Creating a RootAction plugin

Exporting data

Triggering events on startup

Triggering events when web content changes

Reviewing three ListView plugins

Creating my first ListView plugin

Processes that Improve Quality

Processes that Improve Quality

Processes that Improve Quality

Processes that Improve Quality

Processes that Improve Quality

Processes that Improve Quality

Processes that Improve Quality

Processes that Improve Quality

Processes that Improve Quality