Book Image

Extending Jenkins

By : Donald Simpson
Book Image

Extending Jenkins

By: Donald Simpson

Overview of this book

Jenkins CI is the leading open source continuous integration server. It is written in Java and has a wealth of plugins to support the building and testing of virtually any project. Jenkins supports multiple Software Configuration Management tools such as Git, Subversion, and Mercurial. This book explores and explains the many extension points and customizations that Jenkins offers its users, and teaches you how to develop your own Jenkins extensions and plugins. First, you will learn how to adapt Jenkins and leverage its abilities to empower DevOps, Continuous Integration, Continuous Deployment, and Agile projects. Next, you will find out how to reduce the cost of modern software development, increase the quality of deliveries, and thereby reduce the time to market. We will also teach you how to create your own custom plugins using Extension points. Finally, we will show you how to combine everything you learned over the course of the book into one real-world scenario.
Table of Contents (16 chapters)
Extending Jenkins
Credits
About the Author
About the Reviewer
www.PacktPub.com
Preface
Index

A new build type required


For this hypothetical example, I'm going to start off by creating a new build step for Docker builds. This would allow the user to create a build of this type, add in some information, and then eventually do something with it along the lines of a Docker build.

Where you normally have options to add build steps of these types (with the addition of our Say hello world example):

This amazing new plugin-to-be will add an additional entry to kick off a Docker Build.

By looking through similar projects that add additional build steps and from the Hello World example, I can guess that my new plugin will also want to extend the Builder, BuildStep, and AbstractProject classes.

After looking through the links and resources previously listed, I can see that there is an existing Graven Plugin project that performs very similar steps to what we are after and also just happens to include all of the new resources that we wanted to examine in this chapter. Plus, it's got some handy...