Developer Documentation
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.
Design Principles
Decoupled Implementations
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.
Lighweight
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.