Controlling Step Execution
I have a project with four steps.
Step A has no dependencies on other steps.
Step B has no dependencies on other steps.
Step C runs only if Step A did not fail.
Step D runs only if Step C did not fail.
How do I set this up? I can't do it with chaining, because these are steps, not projects.
Thanks,
John Bobinyec
Step A has no dependencies on other steps.
Step B has no dependencies on other steps.
Step C runs only if Step A did not fail.
Step D runs only if Step C did not fail.
How do I set this up? I can't do it with chaining, because these are steps, not projects.
Thanks,
John Bobinyec
One answer
I have a project with four steps.
Step A has no dependencies on other steps.
Step B has no dependencies on other steps.
Step C runs only if Step A did not fail.
Step D runs only if Step C did not fail.
How do I set this up? I can't do it with chaining, because these are steps, not projects.
Thanks,
John Bobinyec
Two main ways occur to me :
1) Inlines - encase Step C and Step D in Project C (two steps) - StepA inlines Project C which executes Steps C and D in order and only D if C passed (natural step order). In order to have B execute independently, place A and B in a thread block together in the original Project.
2) Conditionals - have StepA .bset a variable like STEP_A_PASSED=1 and StepC set a similar one. In StepC, use a conditional to test the value of the STEP_A_PASSED variable's value which will execute the command if true, otherwise it will no-op and do morally the same thing to Step D (who will be watching for a .bset value from StepC's positive case step command).
In either case, since Step A and B are totally independent and you want them to execute whether or not the other failed, I would suggest threading them together (and/or marking both as Continue-On-Fail).
My $0.02,
-steve
-steve