How has it helped my organization?
The first thing that comes to mind is the ability to automate the build process in a seamless way and run workflows effortlessly. It supports parallel builds so it can scale well. Also, it covers the basics of any build and integration tool, including email notifications (especially when tests are fixed), project insights, etc.
For us, this translates to high degree of productivity, ability to detect exactly which build failed and why, and being able to push multiple builds to our production environment at a very fast rate. This has increased the velocity of our product significantly.
What is most valuable?
Some of the most valuable features include container-based builds, integration with Bit Bucket (which our organization uses) and being able to store artifacts.
In addition, it has the facility to encrypt environment variables, setup SSH into the build environment, clear caches and, most importantly, is the ability to configure a Circle.yml file which is easy to understand for most users who are not in DevOps, but also for developers.
What needs improvement?
Integration with Microsoft Azure is one area for improvement. Azure is growing in its user base, and supports various cloud infrastructure components such as Service Fabric, App Service, etc. Some of Azure’s deployment models (like Kudu) require a steep learning curve, but if CircleCI would come up with such features (deployment to App Service) out of the box, it would be amazing.
For how long have I used the solution?
Less than one year.
What do I think about the stability of the solution?
At one point in time, when we were using Winston.js (an asynchronous log transport library), using a console logger on CircleCI would cause builds to fail, which is weird, and which we solved using a hack. However, we didn’t encounter any other stability issues.
What do I think about the scalability of the solution?
How are customer service and technical support?
To be honest, I really didn’t find a need to contact their technical support, partly because our product is simple and easy to configure. We didn’t encounter issues that we had to report to their tech support. We could find most of the answers on their Help portal.
Which solution did I use previously and why did I switch?
Previously, we were using manual deployment, which was error-prone and subject to a lot of steps. Some other products, such as VSTS build services were either too expensive or too difficult to configure, such as Azure’s Kudu deployment. Hence, we were looking at alternate solutions and found CircleCI which has worked well for us.
How was the initial setup?
The initial setup was straightforward in that it required a simple .yml file where we specify the sequence of steps for building and integration. Also, the scripts to store artifacts was intuitive.
Which other solutions did I evaluate?
What other advice do I have?
I rate the product as a nine out of 10 because it is intuitive, easy to configure using the Circle.yml file, and supports container-based builds. I’m taking off one point out of 10 only because, at the time of using this product, it doesn’t have deep Microsoft Azure integration.
One piece of advice would be to consider which cloud you are going to be building on, and see if CircleCI integrates well with it. Secondly, I would advise you to try out the free version before implementing because sometimes, if the project is simple enough and if it doesn’t have a whole lot of developers (such as in startup environments) there’s no need to get more containers building in parallel.