We restrict our projects to run on various predefined labels such as Lin64, Win64, Win2012, Win10 etc. We don't use Matrix builds.
We have a large number of different jenkins projects defined (over 200) and each takes upward of 30GB per project. We have quite a few host computers allocated to each label, and we're finding it annoying that when one of them gets below 30GB available disk space, jobs will attempt to run on it and fail after filling up the disk. Then Jenkins marks the slave off-line until such time as someone cleans out some jobs.
What we'd like is to be able to configure each project with a parameter specifying how much minimum available disk space must be available on a target slave before attempting to run on that slave. If there is insufficient space, we want Jenkins to try another node in the same label until it finds one with enough available space.
If no node is found with enough available space, we want Jenkins to fail or abort or the build (based on another configuration entry).