Pipeline Template Selection¶
Pipeline Template Selection is the name of the process that determines which Pipeline Template to use for a given Pipeline Run.
Figure 1 visualizes this process in a flow chart.
Job Type Matters¶
Ad Hoc Pipeline Jobs¶
JTE treats ad hoc Pipeline Jobs a little differently than Pipeline Jobs that have been created by a MultiBranch Project.
For Pipeline Jobs, if a Pipeline Template has been configured, it will be used. If not, JTE will follow the flow described throughout the rest of this document.
Rationale
The rationale for using the configured template without falling back to the rest of the Pipeline Template Selection process is that if a user has permissions to create and configure their own Jenkins job, Pipeline Governance is already gone.
MultiBranch Project Pipeline Jobs¶
For MultiBranch Project Pipeline Jobs, if the source code repository has a Jenkinsfile
at the root (or at any arbitrary path in the repository as configured by scriptPath
) and jte.allow_scm_jenkinsfile
is set to True
, then the repository Jenkinsfile
will be used as the Pipeline Template.
Disabling Repository Jenkinsfiles
It's important that when trying to enforce a certain set of Pipeline Templates are used that jte.allow_scm_jenkinsfile
is set to False
.
Otherwise, developers will be able to write whatever Pipeline Template they want to.
Named Pipeline Templates¶
The next possibility is that the aggregated Pipeline Configuration has configured JTE to look for a Named Pipeline Template from the Pipeline Catalog.
If this is the case, JTE will recursively search each Governance Tier in the Configuration Hierarchy looking for the Named Pipeline Template.
The order of this search will be from most-granular Governance Tier to the Global Governance Tier.
If the Named Pipeline Template can't be found, the Pipeline Run will fail.
Finding the Default Pipeline Template¶
Finally, if the job doesn't have a configured Pipeline Template and the Pipeline Configuration hasn't defined a Named Pipeline Template to use then JTE will search to find a Default Pipeline Template.
In this case, JTE will recursively search each Governance Tier in the Configuration Hierarchy looking for a Default Pipeline Template.
The order of this search will be from most-granular Governance Tier to the Global Governance Tier.
If a Default Pipeline Template can't be found, the Pipeline Run will fail.