Jenkins Shared Library
OpenDevStack provides a Jenkins Shared Library which offers three pipelines:
- 
A pipeline to build components, odsComponentPipeline. This pipeline allows to have a minimalJenkinsfilein each repository by providing all language-agnostic build aspects. The goal is to duplicate as little as possible between repositories and have an easy way to ship updates to all projects. As a user, you will mostly interface with this pipeline.
- 
A pipeline to orchestrate releases with multiple components, odsOrchestrationPipeline. It supports the orchestration of multiple repositories into a live application using the Release Manager quickstarter.
- 
A pipeline to provision quickstarters, odsQuickstarterPipeline. This pipeline is useful for quickstarter authors.
Background
The implementation was originally based on https://www.relaxdiego.com/2018/02/jenkins-on-jenkins-shared-libraries.html. The scripted pipeline syntax was chosen because it is a better fit for a shared library. The declarative pipeline syntax is targeted for newcomers and/or simple pipelines (see https://jenkins.io/doc/book/pipeline/syntax/#scripted-pipeline). If you try to use it e.g. within a Groovy class you’ll end up with lots of script blocks.