First, if your organization currently uses Jenkins and has Jenkins pipelines defined, we recommend integrating GitLab with Jenkins so teams can continue running their jobs after switching SCM platforms. Refer to the Jenkins CI Service Documentation for information on how to use the GitLab Plugin for Jenkins.

Once GitLab is up and running, new projects and teams can use GitLab CI/CD immediately. Most developers find it much easier to get started with GitLab CI/CD than with Jenkins.

For teams that choose to convert their Jenkins jobs to GitLab CI/CD, make an Issue and start a Merge Request. There is some work involved, because the functionality does not map exactly. Here are some of the factors to consider when converting Jenkins to GitLab CI/CD:

  • Which Jenkins plugins are used by that pipeline
  • What agents are used - if Docker containers, it’s easy
  • Breaking up stages and jobs, parallel vs sequential
  • Environment variables and keeping secrets
  • Failure conditions - exit codes
  • Information output to job trace and returned to Merge Request
  • Artifacts required by later jobs or other processes
  • Are you using our Kubernetes integration?
  • Are you using our security scanning suite?

For fun and inspiration, here’s a blog post summarizing one team’s migration journey

Note that GitLab supports the integration from GitLab itself to the Jenkins plugin; GitLab does not support the plugin itself.