loading...
Cover image for Which CI/CD tool do you use?

Which CI/CD tool do you use?

niharrs profile image Niharika Singh ⛓ ・1 min read

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!

Discussion

pic
Editor guide
 

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?

 

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

 

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.

 

Haha! I agree.

 

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

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.

 

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

 

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

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

 
 

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.

 

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

 
 

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

 

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.

 

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

 

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.

 

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

 

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.

 

True! GH Actions is pretty damn cool

 

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.

 

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.

 
 

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.

 
 

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

 

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

 

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

Yes, that road has to be treaded.

 

Ooh thanks for the pro tip!

 
  • 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

 

That's A LOT of tools...

 

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

Haha, absolutely! Thanks for sharing anyhoo :D

 

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.

 

Thank you for sharing! Very enterprisey, interesting.

 

I have used Azure Devops for learning.

 

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.

 

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

 

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.

 

Mainly Jenkins and GitLab

 

Interesting. So you use them together?

 

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

 

GitActions + CodeCov ❤️

 

Interesting && unique combination! Thanks for sharing. :)

 

Concourse mainly, plus a smattering of Github Actions.

 
 

I use AWS Amplify Console.
You can get complete CI/CD running in like 1 min or so, from scratch.

 

Kubernetes (with EKS) + AWS EC2 Spot requests for our CI. Thanks to this we are running a CI cluster with 10k+ vCPU hourly for a really cheap daily price.

Kubernetes for our CD.

 

Sounds awesome!

 

GitLab, CodeBuild, and CodePipeline

 

At work I use Codepipeline and Jenkins. For personal works CircleCI and Github actions.

 

GitHub Actions and CircleCI

 

What I always wanted to try is render.com. Currently, I am using a mix of DigitalOcean and custom scripts.

 

Git GitHub and Jenkins

 

Great! Thanks for sharing.

 

We are using Jenkins and private Gitlab