DEV Community

Cover image for Which CI/CD tool do you use?
Niharika Singh ⛓
Niharika Singh ⛓

Posted on

Which CI/CD tool do you use?

I have been researching a lot on CI/CD tools lately.

I have worked on TravisCI before, and recently with GitHub Actions.

I'd love to know which ones do you use and why!

Top comments (56)

Collapse
 
_garybell profile image
Gary Bell

GitLab.

I can have my source code, pipeline, backlog, documentation, and just about everything else associated with the project all in one place. Why use 5 tools when 1 will do?

Collapse
 
iamntz profile image
Ionut Staicu

Bonus points: you can host your own CI runner, so you won't be restricted by those 1-2-3000 monthly minutes.

Collapse
 
_garybell profile image
Gary Bell

Yeah, but my org has 10k pipeline minutes for a small team, so I've not needed to look into getting additional minutes yet. If/when I do, it's only $8 for another 1000 minutes as a group. We also have 2k minutes per user, so we don't find it overly limiting.

At some point in the next 6 months we will be moving to our own runners, purely because we're moving to self-hosting of GitLab for additional security.

Collapse
 
niharrs profile image
Niharika Singh ⛓

Haha! I agree.

Collapse
 
michaelcurrin profile image
Michael Currin • Edited

I love GitHub Actions. It integrates well with my PRs for testing code and deploying React and Jekyll sites.

I have collected resources and a bunch of borrowed workflows for reference in case you find something useful or want to be the first to contribute a PR. (Or open an issue an I'll make a page for your usecase)

github.com/MichaelCurrin/code-cook...

I've never setup Travis before. We use CircleCI at work and the config looks similar to GH Actions and also let's you say block PR merge until tests pass. But I prefer fewer tools so GH Actions works fine for me until I find a strong reason to use CircleCI.

For static site or web app building such as React or Jekyll I highly recommend Netlify. The overhead is high for GH Actions for caching dependencies, installing deps, building and persisting as a GH Pages site... By that I mean I have to write and maintain the code myself and I have to mix and match pieces when moving between projects and languages. I have setup GH Pages publishing for a few projects and covered in my cookbooks but still need my own reference to figure out what to do (and which of the many similar Actions in the marketplace I need).

Contrast with Netlify.com where it will recognize and install your python, yarn, npm, or ruby packages for you (even a mix of those together in a project), it will cache them for you for faster builds and you only need a one line build command! e.g.

build: npm run build && jekyll build
Enter fullscreen mode Exit fullscreen mode

I usually use make build so I can use easy run the command locally too and not duplicate code.

A Netlify build is super light to setup and maintain across a dozen projects because there is so little to configure. And there are a bunch of other features you get which aren't on GH Actions/Pages or would be harder to setup. Netlify has some plugins you can opt into with a config flag or checkbox like asset optimization or prerendering a SPA as a static site for crawlers, so it takes away overheard of researching and writing GH Actions code.

Collapse
 
niharrs profile image
Niharika Singh ⛓

THIS IS AWESOME! Have you written some step-by-step tutorial on this?

Collapse
 
michaelcurrin profile image
Michael Currin

I added an intro section to my Actions resource with links to some pages.

github.com/MichaelCurrin/code-cook...

Thread Thread
 
michaelcurrin profile image
Michael Currin
Collapse
 
michaelcurrin profile image
Michael Currin

Here is my Netlify tutorial

github.com/MichaelCurrin/code-cook...

Collapse
 
swiknaba profile image
Lud

I've used buddy.works with great joy, because it has a really nice UI to click together your CI/CD flow. It's particularly great for small apps or a quick prototype, because you don't need to write a config file.
Downside is it offers less flexibility and is more costly if you scale. For these reasons, I use CircleCI for bigger projects.

Since I always use the same stack, my CircleCI config is growing with me, and I now just cherry pick parts that I need for any new project.

Pricing is fair, and you can execute failing test again and ssh into the CircleCI container for debugging, which is amazing.

I've read a ton of interesting stuff about Jenkins, but so far have been too lazy, to set up my own instance for that. Obviously, that is the cheapest and most versatile option, but at the cost of more configuration time for me.

AWS now also offers a CI/CD platform, didn't look into it yet though. Generally, the AWS services are pretty usable.

Collapse
 
patryk profile image
Patryk Woziński

I don't understand why Buddy is not that popular. It's a great tool imho. :D

Collapse
 
swiknaba profile image
Lud

It is :)

Collapse
 
niharrs profile image
Niharika Singh ⛓

Interesting! I'll definitely check out buddy.works.

Collapse
 
rezastd profile image
rezastd

we're using Jenkins like almost everywhere in our projects. we've tried to use another tools as well but seems Jenkins are beyond them. many users use jenkins, many documentation, many communities to share and solve problems.

Collapse
 
niharrs profile image
Niharika Singh ⛓

I agree.

Collapse
 
kylegalbraith profile image
Kyle Galbraith

Huge fan of GitHub actions for how simple it is to get a workflow right next to my code to do exactly what I need.

Also, a big fan of Buildkite when I need that exact same experience but my steps may be dynamic and/or conditional.

Collapse
 
niharrs profile image
Niharika Singh ⛓

I agree. GH Actions are simply awesome. Reading about Buildkite for the first time. Thanks for sharing.

Collapse
 
saisandeepvaddi profile image
Sai Sandeep Vaddi

GitHub Actions.

Even though it's new, plenty of shareable configs available for all types of projects.
Enough free minutes even for private projects which is great for personal projects.

I do have one project in Azure DevOps which I didn't move to Actions yet. Why move if it's working. So Azure DevOps is another option.

I hear great things about TravisCI and CircleCI but I can't spend extra for private repositories.

Collapse
 
niharrs profile image
Niharika Singh ⛓

True! GH Actions is pretty damn cool

Collapse
 
gogorichie profile image
Richard Lewis

This is an interesting thread I've used quite a few over time I currently using Azure DevOps for most of my automation followed by github actions and netlify. I'm interested in learning more about buddy so thanks for all who praise it.

Collapse
 
jondearaujo profile image
Jonathan de Araújo Silva

Just tried out GitHub Actions and it seems pretty good: Easy on-boarding for new projects, since you can create the initial version of the workflow file right there in the web interface; Pretty fast execution on GitHub own infrastructure after commits/PRs.

Collapse
 
niharrs profile image
Niharika Singh ⛓

True!

Collapse
 
tomfern profile image
Tomas Fernandez

I use Semaphore. I began using it when they commissioned me to write on their blog. Professional interest aside, I started using it for my personal projects because it's really fast. It's a paid product, but free for open-source projects.

Collapse
 
niharrs profile image
Niharika Singh ⛓

Oh, I didn't know about it. Thanks for sharing! :)

Collapse
 
abdurrkhalid333 profile image
Abdur Rehman Khalid

I have heard about Jenkins and I have read some things about it, not thoroughly but only a brief overview or introduction.

Collapse
 
_garybell profile image
Gary Bell

If you use Jenkins, or start to, remember to rotate and clear down logs. It's a huge disk space sink if logs are left turned on. Something I discovered and wrote about a couple years ago

Collapse
 
abdurrkhalid333 profile image
Abdur Rehman Khalid

Thank you I was looking for getting started with DevOps, so I have to look at the options as well.

Thread Thread
 
niharrs profile image
Niharika Singh ⛓

Yes, that road has to be treaded.

Collapse
 
niharrs profile image
Niharika Singh ⛓

Ooh thanks for the pro tip!

Collapse
 
habereder profile image
Raphael Habereder • Edited
  • Tekton
  • ArgoCD
  • Drone
  • Jenkins
  • Travis
  • Gitlab
  • Concourse

That should pretty much cover it I think. I've been around the CI/CD-block for a bit :D

Collapse
 
niharrs profile image
Niharika Singh ⛓

That's A LOT of tools...

Collapse
 
habereder profile image
Raphael Habereder

Each of these tools is very good at something, but none of them I would consider to be perfect.

Thankfully there are so many options out there. That way we get to play with more toys :D

Thread Thread
 
niharrs profile image
Niharika Singh ⛓

Haha, absolutely! Thanks for sharing anyhoo :D

Collapse
 
nickyquinn profile image
Nick Quinn

Previously used TeamCity... fairly straightforward to configure and decent web interface. Building mainly .net and some PHP apps nowadays though so have switched to Azure Devops which makes the whole process even easier and integrates well with GitHub, Bitbucket and JIRA.

Collapse
 
niharrs profile image
Niharika Singh ⛓

Thank you for sharing! Very enterprisey, interesting.

Collapse
 
ndaidong profile image
Dong Nguyen

At my company we use Jenkins. But at personal workspace, I setup my own Drone CI for the private projects. With the public and simple projects, Travis is default option.

Collapse
 
niharrs profile image
Niharika Singh ⛓

Thanks for sharing! Which one do you find the easiest to use?

Collapse
 
ndaidong profile image
Dong Nguyen

easiest to use? I often research the new tools. In the past I also experienced with Semaphore, GitLab CI, CircleCI, etc. And all of them are similar.

While Jenkins is still good enough for organization even it looks outdated, I prefer the modern approach - which ones that support YAML based config file. By some ways, I think Drone is the best.

Collapse
 
bobbyiliev profile image
Bobby Iliev

Mainly Jenkins and GitLab

Collapse
 
niharrs profile image
Niharika Singh ⛓

Interesting. So you use them together?

Collapse
 
bobbyiliev profile image
Bobby Iliev

Ah no sorry. I wasn’t completely clear. At work I use Jenkins. And for my persona projects, GitLab.

Collapse
 
shaijut profile image
Shaiju T

I have used Azure Devops for learning.