5 of 5 free conversions left. Sign in for unlimited use.
Jenkins to GitLab CI Converter
Point the converter at your Jenkinsfile — upload the project folder, give it a git repository / .zip / file URL, or name a folder on this machine. You get a ready .gitlab-ci.yml plus a migration report. Declarative pipelines are converted stage by stage (parallel groups, agents, environment, parameters, when conditions, sh steps, artifacts, JUnit reports and post actions); scripted pipelines are converted best-effort. Plugin steps, shared libraries and Groovy logic are never guessed at: they become # TODO(jenkins) comments and appear in the report.
About the Jenkins to GitLab CI Converter
The Jenkins to GitLab CI Converter reads a Jenkinsfile and writes the matching .gitlab-ci.yml. Stages, parallel groups and nested stages become GitLab stages and jobs, agents become image and tags, environment and parameters become variables, when conditions become rules, and sh steps, artifacts, JUnit reports, timeouts and post actions are carried over. The Jenkinsfile can be uploaded, read from a git repository, zip or file URL, or from a folder on your machine. Plugin steps and Groovy logic are reported, not guessed.
How to use the Jenkins to GitLab CI Converter
- Choose where the Jenkinsfile lives: upload the project folder, paste a git repository, zip or file URL, or enter a folder path when you run the tool locally.
- Press Convert to preview the generated .gitlab-ci.yml, the list of CI/CD variables to create and everything that needs a manual decision.
- Download the zip or write the files to an empty folder, commit .gitlab-ci.yml and validate it with GitLab's CI Lint before relying on it.
Frequently asked questions
Which Jenkinsfile syntax is supported?
Declarative pipelines are converted stage by stage. Scripted pipelines (node and stage blocks) are converted on a best-effort basis: the stage steps are translated and surrounding Groovy logic is left as TODO comments. Shared libraries loaded with @Library are reported because GitLab has no equivalent.
Can it read from a repository URL or a local folder?
Yes. Besides uploading a folder it accepts a GitHub or GitLab repository URL (optionally with a branch and a sub-folder and an access token for private repositories), a link to a .zip archive or to the Jenkinsfile itself, and a folder path on the machine running the tool. URLs that point to private network addresses are refused on the public site.
What cannot be converted automatically?
Plugin steps such as slackSend, input or build, Groovy control flow, cron triggers and credentials. Cron expressions are converted for you to create a pipeline schedule, credentials are listed as CI/CD variables to define, and every other case becomes a TODO comment in the job plus an entry in the report.
Will the generated pipeline run without changes?
Often close, but treat it as a head start. You still need a runner with the right tags, an image that has your build tools, and the CI/CD variables from the report. Check the result in GitLab's CI Lint or the pipeline editor.
Are my files stored when I use the Jenkins to GitLab CI Converter?
The text you submit is processed in memory to produce the result and is not saved. Like any web server, Code Converter logs basic visit data (page, IP address and browser) but never the content you paste.