Releases: jenkinsci/templating-engine-plugin
2.0.3
What's Changed:
🐛 Bug Fixes
- Allow library configurations to validate fields are of type List or ArrayList @steven-terrana (#161)
- Resolve a regression introduced by 2.0.2 resulting in "refusing to marshal" exceptions (#167)
2.0.2
2.0.1
What's Changed:
🐛 Bug Fixes
- update for block vs map config issue @cokieffebah (#148)
📖 Documentation
- update JTE 2.0 update guide @cokieffebah (#150)
2.0
What's Changed
Framework Features
- Pipeline Resumability: Previously, JTE pipelines could not successfully resume progress after a jenkins restart. We had to completely rethink how JTE actually works to make this happen and it’s what really drove us towards a major release. I’ll explain some of the code changes in the blog post but the impact here is that now JTE pipelines can be resumed. (7fcfdb0#diff-0bbc22642ab9d77326388dcacc8c500f99eacd51104c0be3eb51a0af3b7df70f)
- JTE Primitive Namespacing: Ever have 2 libraries that contribute the same step? Personally, i think this scenario is a symptom of a different problem — however we’ve gotten many requests about how to handle this. JTE framework-level feature flags now live in a jte{} block that lets you tailor how JTE itself works. One of those feature flags is now a
permissive_initialization
flag that will allow JTE to load two steps with the same name to then be accessed via the Primitive Namespacing functionality we’ve introduced. with great power comes great responsibility. use this feature sparingly, if at all. (#122, #129) - Library Resources: Library resources are critical. The file structure of JTE libraries has been updated to accommodate library resources. each library now has a steps and a resources directory. library steps can now use the injected resource(String path) function to fetch reusable file contents for use in the step. (#102)
- SCM Configuration for Pipeline Jobs: Previously, JTE only let you define pipeline configurations for an ad hoc pipeline job from the console. You can now define a SCM location from which to fetch the pipeline configuration and the pipeline template. (#131)
- Reverse Library Precedence: Thanks @linead! For teams that give permissions to users to administer their own folders on jenkins, it’s crucial that they not be allowed to override libraries defined by the jenkins administrators. JTE 2.0 now lets you set a feature flag in the jte{} block that lets you reverse library selection so that libraries can not be overridden (#132)
- Lifecycle Hook Context: we autowire almost everything in JTE. It’s the core of the syntactic sugar that makes JTE even possible. It felt very off to require an input parameter for lifecycle hooks. We have updated this to now be an autowired hookContext variable. (#113)
- Declarative Syntax Pipeline Templates: This feature is pending a new release of the pipeline-model-definition-plugin, but once release, JTE will support pipeline templates written in Declarative Syntax — which is huge 🙂 (jenkinsci/pipeline-model-definition-plugin#403)
- Field-Level Governance: Previously, pipeline configuration governance could only be done at the block level with merge=true and override=true. That’s been changed to using @merge and @OverRide annotations such that JTE can now support field-level governance. (#106)
- JTE Block: JTE framework configurations have been moved to a
jte{}
block (#117)
Bug Fixes
- Resolve Script Security 1.75 issue (#127)
Internal Code Changes
- GroovyDocs Support
- CodeNarc Integration
- Package Restructuring
- TemplatePrimitiveInjectors now support a Directed Acyclic Graph (DAG) dependency ordering via
@RunAfter
1.7.1
Big thank you to @AndresFPineros, @OnePointLine, @Opa- for reporting bugs and again to @AndresFPineros for patching one!
❗ PR #77, which resolves #74, resulted in some changes to the context
parameter passed to Lifecycle Hooks. Please read the PR for more details.
🐛 Bug Fixes
- Resolve missing import, fixing a bug when filtering branches on existence of
pipeline_config.groovy
(fixes #76) @AndresFPineros (#75) - Do not set currentBuild.result to success at the beginning of the build (fixes #74) @steven-terrana (#77)
1.7
What's Changed:
JTE aims to be an unopinionated framework. The initialization process had use-case specific details that resulted in the bulk of user issues.
JTE no longer calls node
blocks during initialization. This removes any assumptions JTE was making around how executors would be selected without needing to use a JTE custom node
step to override the node
block, which was hacky.
The PR outlines how to reproduce functionality that was removed from a library, if necessary; as well as what JTE's default Pipeline Configuration was (if those configurations need to be reproduced).
This resolves #63, #67, and #69.
🚀 Features
- Remove initialization calls to node block @steven-terrana (#70)
- Remove JTE's default Pipeline Configuration file @steven-terrana (#70)
1.6
🚀 New Features
Define Governance Tiers in the Jenkins Console @steven-terrana (#56)
Now, entire JTE Governance Tiers can be defined in the Jenkins Console.
This also updated the JTE configuration when creating ad hoc Pipeline Jobs so that providing a Pipeline Configuration and Pipeline Template are optional. If no Pipeline Template is provided, the Pipeline Job can inherit a template provided by a Governance Tier (adds #47)
Optional filtering of branches without pipeline configuration file @steven-terrana (#52)
You can now filter out branches from Multibranch Projects if they do not contain a pipeline_config.groovy
file.
Allow pipeline configuration files to resolve the 'env' variable @steven-terrana (#51)
This allows Pipeline Configuration files to reference the env
variable in pipelines so that environment variables and build parameters can be injected into the Pipeline Configuration.
🐛 Bug Fixes
- Fixes bug where sub-configuration blocks specifying
merge=true
oroverride=true
that are not allowed per a parent configuration setting result in a NullPointerException. Fixes #48 @steven-terrana (#50)
🛠Maintenance
- Update README to markdown @steven-terrana (#58)
- Update Gradle JPI plugin to 0.39.0 @steven-terrana (#64)
1.5.2
What's Changed:
- Improve test setup @darxriggs (#40)
🐛 Bug Fixes
- Patch bug related to serialization of "/" characters in pipeline configuration (#45 @salt-mountain)
1.5.1
Miscellaneous cleanup of build.gradle and linting of the documentation.
Thanks @darxriggs!
What's Changed:
- Cleanup @darxriggs (#39)
- [JENKINS-54064] Bundle classes as JAR file into HPI file @darxriggs (#37)
- Remove unused 'application' Gradle plugin @darxriggs (#38)