We’ve been able to bring down our 30 min builds on CircleCI 1.0 down to less than 10 min on 2.0 with the image layer caching or 15 min with the machine executor. It has come quite a way in the past few months to the point that we’re considering switching our main build to 2.0. It just needs a little bit more polish in the reliability department.
For us, 2.0 definitely looks to be an upgrade, especially since we already use Docker for development and use Docker for part of our production environment. Our CI scripts are simpler, and as I wrote above, way faster than in 1.0. The only thing holding us back are some random errors and hangs (for which I’ve made a few posts about recently), and hopefully these will be resolved very soon.
Reading the forums, a lot of the questions seem to come from unfamiliarity with Docker and/or remote Docker hosts. The documentation could be improved with examples of best practices for both the Docker and machine executor types. Complete best practice reference setups for common configurations that uses all the features available in 2.0 with both the Docker and machine executors or even small tips like using
docker cp to share files with the remote Docker host I think would go a long way.
Also, kudos to the support on the forums for the prompt replies to our posts. If I have one request though, it would be for a kind of micro-retrospective or postmortem on why and how of the issues and resolutions rather than a one-line “this issue is resolved now” message. I think as devs, we all are curious about what goes on behind the scenes, and a little description would satiate that while providing more confidence in your product.