What are the tools which you use for CI/CD at work?


Write your response…

This answer has received 1 appreciation.

I've struggled with this for a while, actually. I really like Travis because of how fast it is, but it's too expensive for startups outside of the US and Europe. Great for open source projects, though.

For me and a lot of companies I've worked for, the general census is that hosting it yourself is just not worth the maintenance. You want to better maintain your projects so you hook them up to CI that you have to maintain yourself? Eek. No thank you. Of course I can understand that at scale you might want to - if you have the human resources to appoint specifically to that task. But it won't be any cheaper than using a hosted version.

I've reviewed quite a few CI/CD providers and I've found that there are two that none can compare to in terms of affordability and features in the context of startups and small businesses.

The first is Wercker - They have a free option for private projects, and while the jargon on their homepage is intimidating, once you jump into the simple admin interface (with pretty excellent UX and docs I might add), you'll find that thinking about your CD/CI pipeline is no different than thinking about your project's own build system - you can create workflows and pipelines - pipelines can depend on one another or run in parallel - meaning you can have a pipeline that runs your linting tools, and a pipeline that runs your tests that depends on your linting pipeline, then 2 pipelines that depend on the test pipeline that deploy your app to production and staging in parallel and so on. You could very easily set up a workflow that emails an announcement of a new feature when the PR for said feature is merged in. The limits are really up to your imagination. It is an extremely powerful concept (that you might be familiar with if you've ever used Gulp or the unix & and | characters). While I've given this service so much praise for it's simple and easy to understand admin interface, consider a little bias as I'm technically expertised - so it might not be as simple to understand for those on the business end of the company - investors, project managers, etc.

For those people, there is Buddy. It doesn't have support for multiple private projects on their free plan, but it is so easy to understand and use that I think it is definitely worth looking into if you want your remote repository, CI/CD and project management system to all be managed by the same system. Buddy doesn't just care about CI - they host your code, give you tools for project management and code review. Buddy is basically Trello/Github/Wercker if they were all imagined as part of the same UI, but designed to be easily understood by anyone in the company, not just the developers.

Ah, Wercker is too pricey. Their free plan only offers a multi tenant system and that sounds scary.

Edit: Buddy seems extremely easy to use and is very reasonably priced. :)

Write a reply...

I am using the "classics"

  • jenkins
  • travis
  • docker
  • gitlab
  • github
  • bitbucket
  • fabric / ansible
  • ant (build)
  • phing (build)

I would like to test teamcity and bamboo but never had the chance in production. And I would love to spend some more time looking/testing/trying and/or developing such a tool :D

Write a reply...

Different tools at different companies:

  • Gitlab CI
  • Jenkins
  • Custom-built CI server
Write a reply...

At my day-job workplace we're primarily building Windows client/server software. The codebase is stored in SVN. We have a Jenkins installation and several dedicated build machines. SVN commit hooks trigger a Jenkins CI build.

In my freelance work, code is stored on BitBucket (git). Half of my work is Windows desktop/service work that does not use CI. The other half of my work, which is relevant to the question, is the JavaScript/TypeScript work.

Each repo is hooked up to CircleCI (which is free if your usage is low enough). The builds are controlled through a circle.yml file at the root of each repository. And then each repo also has deploy scripts written in JavaScript (only because I'm more comfortable writing JS than bash shell scripts).

The deploy scripts are invoked by CircleCI after a successful build. They zip the ./dist directory and use the AWS SDK to push the application package to Elastic Beanstalk or Lambda, depending on the project.

The build times are okay, I suppose. I don't really have anything to compare to. I believe they cache things like npm modules to speed up the build. Often the bottleneck is deploying to AWS itself (my staging environment is on a micro instance). My Lambda project builds are 4x faster... but they're going from TypeScript directly to ES5 whereas my Beanstalk project builds are TypeScript to ES6 to ES5 via Babel and the code base is much bigger (plus many more dependencies).

The build machines are supplied by CircleCI. It's all in the cloud.

I'm interested in getting into Amazon's Code Pipeline and Code Deploy stuff... but too many other things on my plate right now. Plus, I find that Amazon's platform and documentation isn't very approachable.

Write a reply...

You can check out Semaphore CI too.

Write a reply...

Load more responses

Join a friendly and inclusive Q&A network for coders

  • 🖥Pick the technologies you like & read great content through your feed.
  • 💬Ask a question when you want to learn more about anything.
  • 🚀Share what you know & build your portfolio.
Sign up nowLearn more

loading ...