Circle CI is a great tool for building iOS projects. It is not primarily mobile focused, but since the service is pretty young, developers try to optimise as much of routine tasks every project has to deal with when it comes to Continuous Integration.
I was recently tinkering with circle setup and noticed that even though actual pods were cached, the service was cloning master repo for every build:
## Install CocoaPods cd "." export LC_CTYPE="en_US.UTF-8" pod check || bundle exec pod install Setting up CocoaPods master repo CocoaPods 1.0.1 is available. To update use: `gem install cocoapods` Until we reach version 1.0 the features of CocoaPods can and will change. We strongly recommend that you use the latest version at all times. For more information, see https://blog.cocoapods.org and the CHANGELOG for this version at https://github.com/CocoaPods/CocoaPods/releases/tag/1.0.1 Setup completed
This step took around ~3 minutes for my project.
I was able to reduce this time to 15 seconds by adding pods spec repo to circle's cache:
## cat circle.yml dependencies: cache_directories: - "/Users/distiller/.cocoapods/" test: override: - make test
I haven't found any drawbacks of this solution yet, so I'm going to keep the setup and see if it is really worth it.