While it seems like there are plugins for nearly every application and pipeline steps for every function in Jenkins, there may still be times when you need to do some operation that you don’t have a step for. If the operation can be done via a shell step in the operating system, you can use a built-in step in the pipeline to execute that. The built-in steps offer several integration points in terms of return values that you can exploit in your pipeline for follow-up actions or decision points.
Another point of integration is the environment: both the external one that Jenkins is running in and the inherited environment local to the script. In addition to being able to read and set environment variables, Jenkins contains a
block step that allows steps within a closure to use an isolated environment.
Workspaces also compose part of your pipeline’s environment. Jenkins includes a few workspace-related steps that are worth knowing about should you ever need to more closely manage a custom workspace for your project.
Finally, there will undoubtedly be times you need to manipulate files and/or directories within your projects. The pipeline includes a limited set of steps to allow for the most common kinds of file and directory operations. Plugins greatly extend this set.
We’ll cover all of these items in this chapter to give you a complete picture of how you can integrate your pipeline and the OS.