The developer docs are here to help you orient yourself within the Jenkins Templating Engine codebase.
The goal is to make it easier to help contributors find the root cause of bugs or extension points from which to add additional functionality.
These docs are going to be added to as time allows.
JTE has a couple different areas of functionality:
Parsing Pipeline Configuration Files
Aggregating Pipeline Configuration Files
Initializing the Binding
The different Pipeline Primitives JTE exposes
Parsing files and compiling them into Scripts to execute
Fetching files from SCM
Each of these areas of functionality are decoupled, so improving JTE’s functionality should involve a relatively limited blast radius of changes.
Writing pipeline templates and implementing pipeline libraries should remain as syntactically close to writing typical Jenkins pipeline-as-code as possible. The Jenkins Templating Engine simply provides a different way to organize your code to optimize the modularity in order to create tool-agnostic, pipeline templates.
Any JTE specific features, such as the
config variable exposed to libraries, should be kept as minimal as possible and only exist to facilitate ease of pipeline development within the framework.
The Initialization Process describes what happens when a new pipeline run starts to prepare the runtime environment to execute the template.