Continuous Integration sucking up all your disc space?


As Agilists, we strive to be always delivering, always shipping, always integrating, and always monitoring. We also want to automate at much as possible so we reduce probability of human error and not waste time.

However, in our effort to automate the non-human part of the software development process, with continuous integration and facilitating technical aspects of continuous delivery, we realized that if left unattended, automated builds triggered by commits in a version control system scheduled via a cron-like mechanisms, can result in services running out of disk space. One of the culprits is often Jenkins.

So, periodically, we have to delete all workspaces, enable discarding builds older than one day so only the last relevant builds will be stored in Jenkins, and then enabling workspace discards after the automatic builds.

As in everything we do, we have to be agile, i.e., do something, test it, get feedback, and iterate with adjustments until everything, even our DevOps, is optimized and running like a well-oiled machine.