A few questions related to:
Simplified, the jobs which are part of a concurrency group within a single build which are eligible to run must all finish before another build’s jobs in that concurrency group are permitted to run.
- How do concurrency gates work when the concurrency_limit is greater than 1? If it’s set to 3, does that allow 3 separate builds to be in the gated section at the same time.
- If a block step in the middle of a concurrency gate is never unblocked, is there one less “concurrent capacity” for the entire group until the build is cancelled, or does the block step disrupt the gate (and if so, does that only happen if the step is blocked once reached)?
- If, while within a gated section, a dynamic pipeline injects new steps that are part of the same concurrency group, is the “gate” adjusted to include those new steps, and to protect any new non-intermediate steps within the new gate boundaries?
- What happens when different steps within the same group specify different concurrency limits (such as step A in group G having a limit of 1, while step B in group G has a limit of 2)? Would step A need to wait until B is done if B starts first? Conversely would step B be able to proceed even if A is already running? Is the behavior influenced by those steps living in the same or different builds/pipelines?
Thanks!