Case Study #2 Migration from jenkins to gitlab ci
The central business area is the monetary policy of the Eurosystem.

Jakub Piasek
May 20, 2024
•
2
min.

About
The central business area is the monetary policy of the Eurosystem. IT2 department ci/cd processes due to corporate requirements needed to be moved from jenkins on internal development infrastructure to gitlab-ci on internal production one.
Challenge
Jenkins and GitLab CI use different configuration languages and scripting approach. Jenkins typically uses a web-based interface and a Groovy-based DSL for pipeline configuration, while GitLab CI uses YAML-based configuration files. Jenkins allows for complex pipelines with various plugins, custom scripts, and workflows. Converting the existing Jenkins pipelines to GitLab CI YAML syntax can be time-consuming especially in legacy pipelines. Migrating such intricate setups to GitLab CI might require breaking down the complexity and finding equivalent or more efficient ways to achieve the same results in GitLab CI.
Jenkins and GitLab CI have different sets of features and capabilities. Some Jenkins plugins might not have direct equivalents in GitLab CI, requiring you to rethink or redesign certain aspects of your pipelines.
Jenkins pipelines were tightly integrated with other tools and services, such as issue trackers, code review systems, or artifact repositories. We needed to ensure a smooth transition of these integrations to GitLab CI that has its own ecosystem of integrations.
Solution
CI/CD redesign: - instead of blindly migrating Jenkins pipelines we redesigned and optimised CI/CD pipelines specifically for GitLab CI. We achieved this by identifying the specific features and plugins in Jenkins that we could replace with built-in GitLab CI features, designing GitLab CI pipelines using its native features (predefined templates, caching mechanisms, Docker containers) and simplifying complex Jenkins pipelines where possible.
Gradual Migration and Dual Maintenance: - we identified low-priority and less complex projects first and migrated them to GitLab CI. These projects were served as test cases for the migration process and help teams become familiar with GitLab CI. During the migration period, we maintained both Jenkins and GitLab CI pipelines for each project. This way, developers could work without interruptions while we ironed out any issues in GitLab CI. Gradually we moved higher-priority and more complex projects to GitLab CI.
Testing and training: rigorous testing and validation was done throughout the migration process to identify and address any issues or discrepancies that arise during the transition. The team was not familiar with gitlab-ci so we provided training and resources to help the team easily learn how to cooperate with GitLab CI.
Results
Our expertise helped successfully migrate from jenkins to gitlab-ci by which the team was able to consolidate development activities within a single platform. This integration offered several benefits: streamlined collaboration, simplified access control, comprehensive insights.
CI/CD pipeline configuration become version-controlled, YAML-based and simplified. Whole build/deployment/release process was based on gitlab-ci native features instead of not realiable jenkins plugins.
Migrating from Jenkins to GitLab CI provides a more cohesive development experience, simplified configuration management, and native support for CI/CD, which can lead to increased productivity and faster delivery of software projects.
Case Study #2 Migration from jenkins to gitlab ci
The central business area is the monetary policy of the Eurosystem.

Jakub Piasek
May 20, 2024
•
2
min.

About
The central business area is the monetary policy of the Eurosystem. IT2 department ci/cd processes due to corporate requirements needed to be moved from jenkins on internal development infrastructure to gitlab-ci on internal production one.
Challenge
Jenkins and GitLab CI use different configuration languages and scripting approach. Jenkins typically uses a web-based interface and a Groovy-based DSL for pipeline configuration, while GitLab CI uses YAML-based configuration files. Jenkins allows for complex pipelines with various plugins, custom scripts, and workflows. Converting the existing Jenkins pipelines to GitLab CI YAML syntax can be time-consuming especially in legacy pipelines. Migrating such intricate setups to GitLab CI might require breaking down the complexity and finding equivalent or more efficient ways to achieve the same results in GitLab CI.
Jenkins and GitLab CI have different sets of features and capabilities. Some Jenkins plugins might not have direct equivalents in GitLab CI, requiring you to rethink or redesign certain aspects of your pipelines.
Jenkins pipelines were tightly integrated with other tools and services, such as issue trackers, code review systems, or artifact repositories. We needed to ensure a smooth transition of these integrations to GitLab CI that has its own ecosystem of integrations.
Solution
CI/CD redesign: - instead of blindly migrating Jenkins pipelines we redesigned and optimised CI/CD pipelines specifically for GitLab CI. We achieved this by identifying the specific features and plugins in Jenkins that we could replace with built-in GitLab CI features, designing GitLab CI pipelines using its native features (predefined templates, caching mechanisms, Docker containers) and simplifying complex Jenkins pipelines where possible.
Gradual Migration and Dual Maintenance: - we identified low-priority and less complex projects first and migrated them to GitLab CI. These projects were served as test cases for the migration process and help teams become familiar with GitLab CI. During the migration period, we maintained both Jenkins and GitLab CI pipelines for each project. This way, developers could work without interruptions while we ironed out any issues in GitLab CI. Gradually we moved higher-priority and more complex projects to GitLab CI.
Testing and training: rigorous testing and validation was done throughout the migration process to identify and address any issues or discrepancies that arise during the transition. The team was not familiar with gitlab-ci so we provided training and resources to help the team easily learn how to cooperate with GitLab CI.
Results
Our expertise helped successfully migrate from jenkins to gitlab-ci by which the team was able to consolidate development activities within a single platform. This integration offered several benefits: streamlined collaboration, simplified access control, comprehensive insights.
CI/CD pipeline configuration become version-controlled, YAML-based and simplified. Whole build/deployment/release process was based on gitlab-ci native features instead of not realiable jenkins plugins.
Migrating from Jenkins to GitLab CI provides a more cohesive development experience, simplified configuration management, and native support for CI/CD, which can lead to increased productivity and faster delivery of software projects.
Related articles
© 2024 QualityMinds, All rights reserved
© 2024 QualityMinds, All rights reserved
© 2024 QualityMinds, All rights reserved