DEV Community

Fulton Browne
Fulton Browne

Posted on

whats the best CI/CD service

Latest comments (15)

Collapse
 
ryanrousseau profile image
Ryan Rousseau

"Best" will really depend on your team's needs. For an all-in-one solution, Azure DevOps is pretty good especially if you're in the Microsoft / Azure space. Personally, I've always preferred TeamCity + Octopus Deploy (disclosure, I work for Octopus Deploy but I've used the product since 2013). But with the lack of a cloud hosted TeamCity, I'd probably opt for Azure DevOps, CircleCI, or some other hosted CI service. Maybe BitBucket Pipelines if my team were using Atlassian tools heavily.

Collapse
 
simme profile image
Simme

I think most CI/CD services are still quite immature. Whichever service you end up choosing depends on what compromises you are willing to accept.

For me, I usually end up with either:

  • GitHub Actions, if the project is open-source, public, and speed/build times are not prioritized issues.
  • CircleCI, for anything else, or when I suspect that SSH access to the build servers will be beneficial.

The only thing I'd recommend, regardless of use case, is to stay clear from Jenkins and TeamCity. Both these services have more drawbacks than upsides and are a pain in the butt to work with due to unnecessarily complicated workflows and/or maintenance.

Collapse
 
buinauskas profile image
Evaldas Buinauskas • Edited

I've used GitHub actions, circle ci to some extent on my side projects but I've mostly used Azure DevOps and was really happy with it. Lots of integrations, very useful online assistants to create build definitions. I also have to say I've used in my working environment but there really wasn't anything I was unhappy about, it worked really well.

Collapse
 
lazerfx profile image
Peter Street

I'm going to be a contrarian and say that I haven't any experience with Gitlabs or GitHub integrations, but Azure DevOps is a really capable platform. We're using it to run some really complex PowerShell/Terraform/C# tooling that populates entire AWS accounts from scratch, or updates them, and "it just works™" - really impressed and totally sold on the Azure DevOps environment (From someone who hated TFS, this is quite an admission)

Collapse
 
justinkaffenberger profile image
JustinKaffenberger

I'll second this. Repos, Build/Release Pipelines, Kanban boards, all in one place. It works well and is constantly being improved by Microsoft.

Collapse
 
sarafian profile image
Alex Sarafian

I've worked with many different services and I've learned that when they offer too much ui, then they become dangerous for the team. In my opinion, every project should have defined entry points for e.g. build, test, publish and all the rest are just a matter of driving them with any tool of preference. Then you also have portability from tool to tool.

I've seen a team struggling so bad with gitlabs to a point that I hated it because it offers this culture of just clicking sound that bad developers embrace. If of containing their complicated actions in the repo itself, they choose to implement complex paths outside because why should they code it? When the repo changes though, then the whole system breaks apart. If you are spending more time troubleshooting your ci, then you are doing something wrong.

Any tool should have a very clear change management process embedded in like yaml. I love Travis and appveyor because they allow the configuration and execution to be part of the branch with a very simple and readable format.

Collapse
 
yashwanth2804 profile image
kambala yashwanth

I ❤️ gitlab right from the beginning , I pulled all my company employees to use gitlab ci/cd. Currently every project is implementing this.

Collapse
 
elthrasher profile image
Matt Morgan

GitHub actions is ridiculously simple to set up and works really well and of course is backed by Microsoft. I would be terrified right now if I were CircleCI or TravisCI.

I have a been using codefresh professionally for the past year. It's extremely feature rich and very powerful for docker-based workflows.

Collapse
 
bradtaniguchi profile image
Brad

In general Gitlab is the most feature rich and most flexible currently, so I'd label it as the best.

However usually the best choice for a given project is what integrates the easiest with other services. So for example if your deploying on GCP, Cloud Build is the best simply because you have to work less to integrate it with the rest of GCP. It does lack more features then gitlab, but most of the time CI/CD just needs to be easy to use since its more of a "get it working and forget" type of utility rather then one that requires more and more capabilities.

Collapse
 
evanplaice profile image
Evan Plaice

GitHub Actions and GitLab CI are both fantastic

I have used most of the other popular CI platforms in the past. Nothing works better than a CI that integrates directly with the repo.

Collapse
 
ale_jacques profile image
Alexandre Jacques

Glitlab is really great. I'm on their online free tier and still use CI/CD with a remote runner (it runs on a external Linode VPS). No costs or limitations so far.

I have no big or slow builds but I am able to run pipelines and deploy Docker images on my VPS.