We've got a matrix job which is coming along nicely, though we've now got a task that should only execute once per build, not once per build node. Is there any way to define a script to run before the downstream triggers execute? Those triggers shouldn't start before the script is done, and if the script fails, that should halt the whole build, so it's not practical to specify a single downstream node to handle it. I've been unable to find a way to pull this off from within Jenkins, and I'm trying to avoid the brute-force solution, which is making this preparatory script responsible for initiating the Jenkins build.
Specifically, we increment a version number to embed in nightly builds and public releases, and that change must be committed back to source control. I realize that CI writing back to source control is semi-controversial, and I agree that it's not ideal, but in this case, fully automating this process trumps ideological purity. That said, if anyone knows a better way to achieve this end, I'm open to alternatives.