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

Declaring an extension in Jenkins


As we have seen so far, creating an interface or an abstract class is simple once we understand the logic behind them. It's easier to declare an interface or an abstract class, and then implement the required functionality.

Creating a Singleton is also straightforward once you understand when to use each design pattern and which approach suits your requirements.

If we keep this model in mind when creating or adding components to a Jenkins plugin, we should be able to identify appropriate opportunities where it would be helpful to expose an interface and create an extension point for others to use. For example, if you are working on a plugin that for some reason transforms the history of a Jenkins job in to a CSV file so that it can be exported and analyzed in a spreadsheet, you will be writing functions to turn some data in to CSV values—this could be declared as an extension point, and as long as the data passed is of the specified type, others can reuse...