appveyor / ci

AppVeyor community support repository
https://www.appveyor.com
344 stars 66 forks source link

AppVeyor OnPremise: Global Queue #2965

Open itniels opened 5 years ago

itniels commented 5 years ago

First off, thankyou for this: https://github.com/appveyor/ci/issues/655 It would also be really nice to have a global or at least environment max concurrent jobs, that will queue jobs.

Possible solution: The only way to limit it across projects currently is setting a hard limit in the Build Environment, but instead of queuing it simply fails jobs immediately, which was unexpected to me at least!

Would it make sense to queue instead of fail when there are no build environments available currently? Or at least have a dropdown with action ["Fail", "Queue"] as to preserve backwards compatibility. ;)

EdJoPaTo commented 3 years ago

Seeing this issue is what I would need too. I have a runner which is only able to run one job at a time of the projects they should run. The runner should be cloned later on to have multiple runners available where each of them is only able to run one job at a time. If there are more jobs than runners currently available they should queue up.

The Advanced setting "Maximum cloud capacity, jobs" of the BYOC worker seems to be what is needed here. But when setting this (for example to 1) any additional jobs instantly fail (as described by the author already). Also setting 'cloud group name', 'group distribution strategy' (btw what is the default when nothing is selected?) and failover strategy timeouts did not work for me.

Setting max_jobs for a project works fine with queuing as long as there is only one project and only one runner available. So the suggestion by the author to queue instead of just fail jobs would be something that would solve my problem.