Group Conditionals

Thank you. I’m aware of the dynamic pipeline upload workaround, though I wouldn’t consider it to be more valuable than just having duplicated conditionals. Thus this is a feature request, not really a matter of solution-seeking.

Dynamic pipelines have a few downsides:

  1. They make pipeline behavior less transparent (in extreme cases you might have 9/10 steps completed, but then you have 10/20 steps completed, and then 11/30).
  2. They are very difficult to use well with step dependencies, since you can’t have static steps depend on dynamic steps (because they haven’t shown up yet, and thus the dispatcher rejects the pipeline).
  3. Without care, they can easily make pipelines non-deterministic: uploaded pipelines that inject a wait step may, due to a race, end up with the wait not being respected by steps that were already present in the build.
  4. The env of the generating step is not respected in the generated steps. This is plausible, but may be surprising.
  5. Generating additional steps pays the overhead cost of waiting for agents, which can add up, and when a step does nothing but generate another set of steps, that overhead is effectively paid twice.

As such, while many feature requests are answered with pipeline uploads as the canonical solution, dynamic pipelines leave a bit to be desired, especially when the problem being solved isn’t intrinsically dynamic.