This is a fork of the Google Compute Engine Plugin for Jenkins. It adds support for persisting VMs:
- When the plugin decides to scale down, it can choose to stop an instance instead of deleting it.
- Later on, when the plugin decides to scale up, it will prefer to re-use an instance rather than creating a new one.
Stopped instances retain state (intermediate build results, Docker layer cache, ...), allowing for incremental builds, without costing nearly as much as running instances 24/7.
These changes could potentially be folded back into the parent repository. They need to be well tested though; right now, there are edge cases where instances are forgotten about and left behind.