What is Jenkins ?
Jenkins is a free and open source automation server.
It helps automate the parts of software development related to building, testing, and deploying, facilitating continuous integration and continuous delivery. It is a server-based system that runs in servlet containers such as Apache Tomcat.
It supports version control tools, including AccuRev, CVS, Subversion, Git, Mercurial, Perforce, ClearCase and RTC, and can execute Apache Ant, Apache Maven and sbt based projects as well as arbitrary shell scripts and Windows batch commands.
Jenkins Case Study: D4Science
D4Science Amps Up Their Scientific Research Platform With CI/CD
From one to hundreds of repositories.
Before 2019, D4Science had been using SVN as a version control system with a single repository hosting all the gCube source code. Over time, the issues they were encountering managing their code and releases overcame the benefits SVN was able to provide.
“gCube is a very extended framework. Composed of hundreds of software components, it has several disparate teams working on various applications and services at the same time,” said Manuele Simi, Software Engineer. “Before introducing our new code management platform, each release required an ever-increasing amount of effort, time and resources to coordinate and build. On top of that, our daily work was continually disrupted by recurring problems in the Continuous Integration pipeline that were not under our control.”
A first step D4Science took was to migrate from SVN to Git to better manage and version their code. According to Simi, a crucial decision in this transition was how best to map their “huge” SVN repository to Git. After careful consideration, they opted to split the source tree into smaller units of work and create a Git repository for each. With hundreds of repositories to release and a build system that could no longer meet the needs of this demanding scenario, it was clear that they needed to switch to a new Continuous Integration and Continuous Delivery pipeline.
Empowering e-Science and virtual research communities with software released via Jenkins.
The Jenkins Declarative Pipelines implemented by D4Science provide full control of orchestration activities for their complex releases. Additionally, all build jobs are coordinated in a configurable and dynamic fashion. With Jenkins, D4Science has now the capabilities to:
- build and release software components from 200+ Git repositories within the same day by launching a single pipeline job;
- reuse the same build jobs across different build stages;
- require zero effort of the development team at release time;
- get reliable, fast Continuous Integration feedback
With minimal effort, D4Science was able to replace the pre-existing build platform that they had relied on for several years. With Jenkins, they gained an easy to maintain, scalable, state-of-the-art CI/CD server that can be upgraded at minimal costs. Most importantly, according to Simi, they solved all the issues that made their previous Continuous Delivery pipeline so expensive.
“With the solutions implemented with Jenkins, we completely reshaped our delivery phase by saving effort, time, and resources,” said Simi. “We now have fast, incremental releases managed by a single person, where previously we had a dedicated team just for the release activities.”
Dozens of research institutions and organizations worldwide are saving time and resources by employing VREs created with gCube. With the capacity to promptly release new software addressing users’ requirements, D4Science continues to receive a stream of projects funded by the European Commission and to attract the interest of diverse communities of practices engaged in research projects, with the promise of more to come.