Find out how to interact with Jenkins from within Eclipse, NetBeans, and IntelliJ IDEA
Develop custom solutions that act upon Jenkins information in real time
A step-by-step, practical guide to help you learn about extension points in existing plugins and how to build your own plugin
Book Description
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.
What you will learn
Retrieve and act upon Jenkins information in real time
Find out how to interact with Jenkins through a variety of IDEs
Develop your own Form and Input validation and customization
Explore how Extension points work, and develop your own Jenkins plugin
See how to use the Jenkins API and command-line interface
Get to know how to remotely update your Jenkins configuration
Design and develop your own Information Radiator
Discover how Jenkins customization can help improve quality and reduce costs
About the Author
Donald Simpson is an information technology consultant based in Scotland, UK.
He specializes in helping organizations improve the quality and reduce the cost of software development through the adoption of process automation and Agile methodologies.
Starting out as a Java developer, Donald's interest in application servers, networking, and automation led him to a career as a build engineer. He remains highly technical and hands-on and enjoys learning about new technologies and finding ways to automate and improve manual processes.
1. Preparatory Steps
Getting started with Jenkins
Extending the basic setup
Jenkins evolution
Continuous Integration with Jenkins
2. Automating the Jenkins UI
Use case scenario 1 – a large number of jobs
Use case scenario 2 – multiple hosts
Use case scenario 3 – helping your users through UI automation
4. The API and the CLI
Creating an Information Radiator with the Jenkins XML API
Getting the information from Jenkins
Automating the job
Radiating the information
Jenkins as a web server – the userContent directory
The Jenkins CLI
How to set it up
How to use it
Triggering remote jobs via the CLI
Updating Jenkins configuration
5. Extension Points
A brief history of Jenkins plugins
Interfaces
Abstract classes
Abstraction and interfaces
Singletons
Declaring an extension in Jenkins
6. Developing Your Own Jenkins Plugin
An introduction to Maven
Installing Maven
7. Extending Jenkins Plugins
Where to start?
Looking at the list of existing plugins
A new build type required
Loading and building our starting point
The Builder class and Stapler
Jelly and Jenkins
Help
Properties files and Messages
The POM file
Plugin progress
8. Testing and Debugging Jenkins Plugins
Running tests with Maven
Debugging Jenkins
Server debugging – a quick recap
Debugging with IntelliJ
Debugging with Eclipse
mvnDebug
The Jenkins Logger Console
9. Putting Things Together
The Jenkins script console and Groovy
Groovy and Gradle as alternatives
Jenkins and Docker
Docker in Jenkins
Jenkins in Docker
Jenkins and Android
Jenkins and iOS
Keeping your Jenkins version and plugins up to date
No comments:
Post a Comment