Jenkins Shared Library

OpenDevStack provides a Jenkins Shared Library which offers three pipelines:

  1. A pipeline to build components, odsComponentPipeline. This pipeline allows to have a minimal Jenkinsfile in 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.

  2. 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.

  3. 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.