Here's my current setup:
I have 1 task that acts as a trigger for 3 other tasks by having them as snapshot dependencies. The trigger is OS agnostic while the 3 snapshots are across Windows, Mac, and Linux. When the associated branch is checked in, the trigger task runs the 3 snapshot tasks and when they are done, the trigger runs a quick test and is done.
What I'm asking:
If one of the snapshot dependencies fails, the other snapshot dependency tasks keep running. Is there any way for the other dependencies that are still running to then be canceled automatically? The trigger task is going to end up being a failure anyway since one of its dependencies failed, so I have no reason to continue running the other dependencies.
The reason I'm asking for this is because a Mac build can fail and a new check-in will queue up on the trigger task, but it won't do anything for another hour because the Windows build is still building; despite the fact that it is going to have to build again with the latest queued-up check-in. It seems like a huge waste of time to wait for that other dependency, but if I break down the current triggering scheme and use an alternate method, I'll break down the ability to run these builds in a parallel manner. Any help?