Cache VMs to save time on dependencies installation
If you have a project with a lot of dependencies, like cordova, unity or imagemagick, it takes a very big chunk of build time just to set them up.
Same goes if your project is very big (like a 3D game), it would take a very long time to download it from scratch, where if it was just a repo update that downloads latest changes, it would be much faster.
One possible solution is to have a separate workflow which would download and install all dependencies and then that state of VM image would be stored/cached and later "build" workflows wouldn't need to setup anything, just to download latest changes and build them. Of course there will be a need to reset such a cache.
Another possible solution is to let people use custom VMs which has all dependencies that are needed for their projects.
Caching dependencies is available for some time now, related docs: http://devcenter.bitrise.io/caching/about-caching/
Thank you everyone, and Happy Building!
Carthage is still not implemented, is there any progress indicator on that specific one?
Brentley Jones commented
I would use this for Carthage, along with this change that will be coming soon: https://github.com/Carthage/Carthage/issues/1222
Mattias Karlsson commented
Would be amazing for nuget packages too on Xamarin builds.
Speeding up the build by caching dependencies would be amazing!
Hakon Hanesand commented
Useful for cocoapods as well!
Russell Bishop commented
This would be huge for us. We don't need a ton of builds but when we do need them we'd like to have them as quickly as possible.
Perhaps this could be an extra feature you can pay for to let you have a hot-standby image ready to go. Your hyper visor should be able to assign zero resources to it if not used within a certain period of time, and maybe a max lifetime so if you update your VM you don't have old instances stuck around forever.