DEV Community

Discussion on: What is your favorite CI/CD tool and why?

Collapse
 
dmerejkowsky profile image
Dimitri Merejkowsky

Note:

I spent many years working with Jenkins and switch to GitLab CI 2 years ago. I've also used travis.

I like GitLab CI the most, here's a list of nice features:

  • Bundled with GitLab (doh)
  • Excellent documentation
  • You can always deploy because your CI code lives next to your production code. In Jenkins, if you changed the job config without adding it to version control you're screwed
  • gitlab-runner runs everywhere (macOS, Linux, Windows) and is very easy to configure/install (just a go executable and you're ready to go)
  • Clean yaml based config
    • Jobs declaration with stages and environment name is awesome

  • Supports Docker out of the box

  • Integrated with Kubernetes

  • Nice REST API

And here are a few things where Jenkins is better:

  • Trying to figure out why your job is pending is not obvious and you have to be an admin to see all the running jobs.
  • Every job starts with a completely clean git repo. You must use things like cache and artifacts to transfer files across jobs and pipelines. Sometimes I would just like a 'don't clean the git repo after checkout' option.
  • If your gitlab-ci.yml go out of sync accross branches, things can get tricky...
  • GitLab CI really insist on having one git repo per project: jobs across projects are hard to maintain.
  • In the same vein, you cannot have 2 different jobs depending on which folder of the source code has changed.
  • No plugins. You cannot for instance get a list of tests that passed with their history, for instance.
Collapse
 
dhandspikerwade profile image
Devin Handspiker-Wade

You can have the "'don't clean the git repo after checkout' option". It's under "Git strategy" in runner settings. Doesn't really make a difference if you are using containers as they're disposed after a job completes but if you are using are SSH executor it doesn't clean the workspace.

Collapse
 
dmerejkowsky profile image
Dimitri Merejkowsky

Wow I somehow missed that. Thanks !