Solutions Delivery Platform

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.

Governance is a Dial

The Jenkins Templating Engine is first and foremost a pipeline templating framework. It turns out that one of the values in templating is the ability to enforce organizational standards through common configurations and reuse.

Specific Topics

topic description

Initialization Process

The Initialization Process describes what happens when a new pipeline run starts to prepare the runtime environment to execute the template.