Skip to content

Releases: jenkinsci/templating-engine-plugin

2.0.3

11 Feb 15:14
Compare
Choose a tag to compare

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

29 Jan 18:15
fab9a99
Compare
Choose a tag to compare

What's Changed:

🐛 Bug Fixes

2.0.1

13 Jan 17:04
Compare
Choose a tag to compare

What's Changed:

🐛 Bug Fixes

📖 Documentation

2.0

13 Jan 17:04
4f78542
Compare
Choose a tag to compare
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

30 Apr 01:57
Compare
Choose a tag to compare

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

27 Apr 14:23
Compare
Choose a tag to compare
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

1.6

23 Apr 01:24
Compare
Choose a tag to compare
1.6

⚠️ this upgrade introduces a new feature that changes the JTE configuration in the Jenkins Console. This means that existing Job DSL scripts or the like will need to be updated accordingly.

🚀 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 or override=true that are not allowed per a parent configuration setting result in a NullPointerException. Fixes #48 @steven-terrana (#50)

🛠Maintenance

1.5.2

03 Feb 17:44
9965f47
Compare
Choose a tag to compare

What's Changed:

🐛 Bug Fixes

  • Patch bug related to serialization of "/" characters in pipeline configuration (#45 @salt-mountain)

1.5.1

22 Jan 15:12
a151e64
Compare
Choose a tag to compare

Miscellaneous cleanup of build.gradle and linting of the documentation.
Thanks @darxriggs!

What's Changed:

1.5

06 Jan 15:08
Compare
Choose a tag to compare
1.5

Thank you @Quaiks!

What's Changed:

🚀 Features

  • Add option to skip initial SCM checkout during initialization via the 'skip_default_checkout' configuration option @Quaiks (#35)

📖 Documentation

  • Added 'skip_default_checkout' option @Quaiks (#35)