DEV Community

Discussion on: Explain CI/CD like I'm five.

Collapse
 
rishikc profile image
Rishi Kumar Chawda • Edited

Basically it is a way to ensure every deployment you do is not breaking. So let's say you are actively developing a website ( can be any piece of software, not just a website ) and before publishing it you might want to run some checks and do other related things - which you can automate rather than doing manually. That's where CI comes. And not just that, it runs the tests for you, you can configure notifications ( through web hooks ) so you can verify everything before publishing it on production and other things depending on what you're working with.

EDIT: Another example might be a library - where you can check if all test cases are passing so that you can be sure no other functionalities are breaking due to a certain change, schedule version release / publishing, version bumping, changelog generation etc.

Collapse
 
realabbas profile image
Ali Abbas

Best alternative of Travis CI?

Collapse
 
rishikc profile image
Rishi Kumar Chawda • Edited

I've only worked with two - Travis CI and Circle CI. I like travis more but yeah Circle CI is great too. For me, Circle CI was easier to adopt and get started with but can't say for sure if it would be the same for everyone!

Thread Thread
 
realabbas profile image
Ali Abbas

๐Ÿ‘Thanks. Dev

Collapse
 
tyrrrz profile image
Oleksii Holub

Depending on your tech stack, I can also recommend Appveyor.

Collapse
 
truggeri profile image
Thomas Ruggeri

I like CircleCI over TravisCI. We use HerokuCI at work which is fine, bit obviously tied to Heroku.

Collapse
 
smartinspereira profile image
Sergio Martins Pereira

You should also consider gitlabs ci/cd tools, which are kinda free. They also play well with github.
The biggest advantage, in my use-case vs. circle & travis, you get way better access controls.
Especially when using it with github / mirror repo.

Collapse
 
johncip profile image
jmc • Edited

It really depends on what you need -- for a modern-ish web app, with code hosted on GitHub, CircleCI, Travis, and Jenkins will likely all do the job. They're all fairly easy to set up (probably -- I've only set up CircleCI and Travis). So if you're likely to be outside of the free offerings, I'd check the pricing before anything else.

I believe GitLab and BitBucket have their own built-in CI solutions.

At my last gig we eventually switched to BuildKite because their pricing was better for the number of parallel jobs we wanted (basically unbounded). It's a good product, and getting rid of the build queue was awesome. Also, we were able to get parallelism within builds by splitting groups of tests into separate runs.

It's not as turnkey; with BuildKite you're responsible for your own container infrastructure, but I mention it in case there are folks who don't mind self-hosting builds and who haven't heard of them yet. (From what I can tell their pricing is better than e.g. AppVeyor's self-hosted offering, depending on team size.)

Also, just realized TeamCity offers unlimited builds, too. I would imagine they're in parallel. Might also be worth checking out for those who need to scale up.

Thread Thread
 
foresthoffman profile image
Forest Hoffman

Buildkite is a god-send. The reliability that comes with running an internal CI client almost made me cry tears of joy.