We have too many tests, so we have broken them up into three groups. One group that runs after each checkin and one group that runs once a day on any branch with changes and one group that I would like to limit to one instance at a time but still test any active branch.
What is the best way to structure such a job? I am thinking a daemon type job that just iterates over branches and kicks off the real test job and then waited. The daemon would be sitting idle for almost 6 hours and then busy for 10 seconds, and then idle again, which seems slightly wasteful but at least this way jenkins would be self managing and I could tweak the daemon side to have priorities if I wanted, e.g. if master had changes and hadn't run in 36 hours, run it next, then go back to rotating fairly across the branches with changes.
I can't have just one long running job that does it all because then my test results would get mixed together (I think) and I would not have red/yellow/blue for each branch.
Any other ideas?