Chapter 6. Extending Your Pipeline
Like in any programming environment, in Jenkins pipelines, centralizing functions, sharing common code, and code reuse are all essential techniques for quickly and effectively doing development. These practices encourage standard ways to invoke functionality, create building blocks for more complex operations, and mask complexity. They can also be used to provide uniformity and encourage convention over configuration to simplify tasks.
One key way that Jenkins allows users to do all of this is through the use of shared pipeline libraries. Shared pipeline libraries are composed of code stored in a source code repository that is automatically downloaded by Jenkins and made available to pipelines.
In this chapter, we’ll explore the structure, implementation, and use of pipeline libraries, as well as seeing how to create our own global functions and even incorporate code that’s not written in Groovy or Java. To start building our understanding, let’s look at the different classifications of shared libraries that are available in Jenkins.
Trusted Versus Untrusted Libraries
Shared libraries in Jenkins can be in one of two forms: trusted or untrusted.
Trusted libraries are ones that can call/use any methods in Java, the Jenkins API, Jenkins plugins, the Groovy language, etc. Because trusted libraries have such wide latitude in what they can call and use, it’s important that access to add or change code in them is managed. Making updates to trusted ...