Continuous Integration with Jenkins

Jenkins is a popular open source, Java-based Continuous Integration (CI) toolkit. The primary goal of CI is to build and test software automatically, and provide feedback to help identify defects introduced by code changes as soon as possible.

While the recommended and supported Continuous Integration tool at CERN is GitLab CI, some software projects may have specific needs that require a more complex and powerful tool such as Jenkins.

In order to facilitate the deployment of Jenkins for software projects, the IT department offers the possibility to create pre-configured Jenkins instances in a "Platform as a Service" fashion. IT provides the infrastructure and a Jenkins application template with support for SSO and e-groups, but users are in charge of administering and maintaining their instance. No expertise is provided for Jenkins configuration, and support is limited to the infrastructure (excluding for instance troubleshooting of issues with using Jenkins).

Supported Clients

Note about support for this service provided in a "Platform as a Service" fashion:

IT does not provide expertise or support for the configuration of Jenkins and its plugins beyond the pre-configuration performed for integration with CERN services (such as GitLab, SSO, e-groups...). Full admininstrative privileges on the Jenkins application are instead delegated to the user.

Support will hence be limited to ensuring that the infrastructure running the Jenkins instance is correctly running.

User Responsibilities

While the Jenkins version upgrades are centrally managed, users are responsible for configuring, managing and keeping the plug-ins of their instance up to date, specially, in case of security vulnerabilities. Plug-ins can be updated from the Jenkins master itself.