When a build is triggered via the http endpoint (webhook or manually in the ui) and a build is already running the trigger is rejected.
If the trigger is a webhook (a parseable POST body is present) triggers should not be rejected, instead they should be queued. The trigger_filter script should extract the head reference which will be stored in the queue. One/many worker goroutine processes the trigger queue one after another.
A manual trigger from the ui has an empty body, a trigger with the head rev null is queued, which marks the most recent version.
The queue should automatically drop duplicate triggers (project equals, branch equals and head ref equals)
When a build is triggered via the http endpoint (webhook or manually in the ui) and a build is already running the trigger is rejected.
If the trigger is a webhook (a parseable POST body is present) triggers should not be rejected, instead they should be queued. The trigger_filter script should extract the head reference which will be stored in the queue. One/many worker goroutine processes the trigger queue one after another.
A manual trigger from the ui has an empty body, a trigger with the head rev null is queued, which marks the most recent version.
The queue should automatically drop duplicate triggers (project equals, branch equals and head ref equals)