What's your favourite CI/CD tool and why?

Karolis on February 01, 2019

Throughout the years I have seen many companies using different tools to achieve same/similar things in CI/CD area. There's no denying that Jenkins... [Read Full]
markdown guide
 

I've been a big fan of GitLab CI/CD.

But recently moved away

Now:
Static sites - Netlify
API servers running in Google Cloud - buddy.works

buddy.works is very new, but very easy to setup.

 

My company uses Gitlab CI/CD + runners model as we self-host gitlab on our servers. So I really like how it comes with it which I didn't know that it's possible when I was using GitHub beside the use of Travis CI

 

I've been using Azure Pipelines at work and liked it so much that I've started testing Orchid with it as well, with the hope of eventually replacing Travis CI with it.

I develop on a Mac locally and am having trouble with the Windows builds (which I'm not seeing on AppVeyor, BTW), which is a blocker for me using is exclusively right now. But other than that, it's really easy to set up and very powerful.

 

Gitlab, like the all in-one but we aren't doing anything too advanced.

 

Concourse CI is pretty neat. I used only once in my previous company so I cannot share much experience with it.

If you want to see it in action, their pipeline is public.

 

Used Jenkins for building Android and iOS apps, and send out a formatted email with Git Log with the build attached to all the testers. Then when Gmail stopped allowing APK attachments, we used to push the APKs to either S3 or a local machine and serve using a simple Python HTTP server, and send out the link to testers.

Jenkins allowed to pass parameters every time I build it.

Later moved to GitLab CI/CD, and I manually download the artifacts and upload it in Google Drive and send email to testers.

 

My team is on Azure Devops and love it. This article is interesting to me because my company is wanting to use Jenkins and I think it's a mistake. There seem to be better options.

 

I don't have much outside Jenkins and gitlab, toughed some of Travis.

I prefer gitlab, but it is much more opinionated than Jenkins. My experience so far is nah environment management sucks and Kerbernetes is a big lift especially exists code bases.

 

I'm using Jenkins for its flexibility. Most of the projects I work with are Legacy and lack most of the Industry's standards.

Jenkins allows me to workaround that.

 

We have Gitlab, Jenkins, VSTS(Azure DevOps) and TeamCity. I personally like TC because of its ease to configure, out of the box plug-ins and great documentation.

 

During one project I also had a chance to use TC, really liked it, however due to budget constraints we had to go with Jenkins :) How does it currently work with containers?

 

That's understandable and the reason we have three environments. One for Unit tests, one for automation and one for CI. There's advantages and disadvantages to having one large environment compared to multiple, but it's worked for us so far and TC adding 100 build configurations has helped.

It works great with containers, but we don't do anything advanced with Docker. A lot more time was spent spinning up 2016 agent servers, enabling and configuring Docker on Windows and all the dev work for it to work with swarm.

 

Travis CI - Open Source Projects
GitLab CI - Private Projects
AWS CodePipeline / Google Cloud Build - Projects that rely heavily on AWS / GCP respectively.

 

CA Release Automation, I get why people use Jenkins as a deployment tool as well as a build tool but it's not designed for deployment.. No built-in structure for it, it has to be tweaked to work unlike Bamboo which builds and deploys and can maintain branch separation

 

As someone whose projects have covered Python, PHP and JavaScript, Jenkins has usually been my choice for work projects. It's powerful and flexible enough that you can do a lot with it, and it can turn its hand to most languages. Though I last used it before Docker really became popular, so if I'm in the market for a CI solution again I'll maybe take a look at some of the container based ones.

For open source projects I usually use Travis CI since it's free and easy to set up.

I also sometimes use Sismo. It's not a CI server in the usual sense, and you should use it alongside a more conventional CI server, but it's useful if you just want to make sure your test suite gets run on every commit.

 

Gitlab CI/CD on self hosted Gitlab + one big runner for builds (creates raw artifacts and docker images) set up to run concurrent jobs, and one runner per env for CD.
Working on shifting to plain K8S fed from the images built by the builder mentioned above.

 

I'm on the CD team at Airbnb. We're in progress of migrating to Spinnaker.

It is the most powerful deploy tool out there but it's also a beast to run. We have a team of 5 engineers to manage it.

 

I have looked at Spinnaker a year ago, at that time you had to use both Redis and Cassandra as databases for it. It seems like most of the infrastructure costs would go to feed the spinnaker instead of the actual backend applications.. :D

 

Cassandra is no longer a requirement :)

We back it with S3, Redis and RDS

 

We're using enterprise git and travisCI at my work and it's been great to use. I prefer build configs in the project, travis does that very well and the flexibility it offers us in how we approach our pipelines has been awesome.

edit: props to TravisCI support, we've had a few late nights do to different issues and they are responsive and very much engaged with their customers.

sometimes...

  • we are building in one of their supported languages
  • we are building a docker image
  • we are building a docker image in their docker image
  • we deploy to code deploy
  • we deploy to S3
  • we deploy to ECS (not supported, wrote own script)

Hopefully I can free up some time this year to explore some other ones; gitlab is awesome but until they fix their performance issues (idk, maybe they did it's been a few years) it's a huge no go for me.

 

We use both Jenkins and Azure pipelines at work. I much prefer Azure DevOps(vsts).

 

Gitlab's ci/cd... Runners are set up on private server, and not shared. Runner containerize the code, and then deploy on designated server/s.

 

It's GitLab runners for CI and Jenkins for CD. CI uses configurations part of repo and its clean and neat. Jenkins is the legacy scripts and tools put together to do some tricks during deployment on to test setups.

 
 

Definitely Drone.io, I love how easy it is to setup and how familiar the syntax is since everything runs in a container.

 

Gitlab and Jenkins at work and github and Travis and Appveyor at home

 

I use Travis CI for Open Source Projects hosted on Github
and AWS CodePipeline for projects that use AWS.
I have yet to use a Drone but it sounds interesting.

code of conduct - report abuse