In the Platform, we use Jenkins as a tool for continuous integration. We define two types of Pipeline, always using the Jenkins DSL based on Groovy as a language:
- Multibranch pipeline: The definition of continuous integration tasks is carried in a versioned file within Git. This way, whenever each repository branch is created, its own definition of continuous integration is associated to it. These types of pipelines are run daily at night (nightly compilation) by passing unit tests, integration test and code quality rules (Sonarqube).
- Parametrized pipeline: This type of pipelines, depending on their function, need certain parameters to be executed. For example, if it is an image generation pipeline, it needs the image tag to be generated in the Docker register, the origin branch from the which images will be generated, etc ...
This type of pipelines, like those of the Multibranch type, is encoded using the Groovy-based Jenkins-specific DSL: