Implement conditional steps execution
Work items:
-
[x] initialize conditional steps logic - https://github.com/Samsung/Universum/pull/737
-
[x] implement artifacts collection - https://github.com/Samsung/Universum/pull/716
-
[x] handle only one branch step set - https://github.com/Samsung/Universum/pull/749
-
[x] create basic documentation - https://github.com/Samsung/Universum/pull/748
-
[x] implement report artifacts collection - https://github.com/Samsung/Universum/pull/750
-
[x] reformat tests - https://github.com/Samsung/Universum/pull/790
-
[x] add tests for artifacts preprocessing - https://github.com/Samsung/Universum/pull/791
-
[x] implement artifacts & report artifacts preprocessing - https://github.com/Samsung/Universum/pull/794, https://github.com/Samsung/Universum/pull/795
-
[x] implement
Configurationsupport instead ofStepfor branch steps (link) - https://github.com/Samsung/Universum/pull/808, https://github.com/Samsung/Universum/pull/809 -
[x] temporarily disable having children for conditional step - https://github.com/Samsung/Universum/pull/812
-
[x] allow other configurations to be launched after the conditional step - https://github.com/Samsung/Universum/pull/816
-
[x] implement
criticalflag logic - https://github.com/Samsung/Universum/pull/817 -
[x] temporary disable steps addition - https://github.com/Samsung/Universum/pull/819
-
[x] merge into master - https://github.com/Samsung/Universum/pull/820
-
[x] fix bugs found - https://github.com/Samsung/Universum/pull/825
-
[ ] implement steps addition and multiplication
-
[ ] design & implement step filtering for conditional steps (link)
-
[ ] check work with the
if_env_setflag -
[ ] check background execution
-
[ ] handle config where conditional step has children (link): run child steps before branch steps, use
criticalflag logic
See discussions and proposals under https://github.com/Samsung/Universum/issues/636
Preliminary development plan was created during the task discussion:
- Step(..., if_succeeded=..., if_failed=...)
- ? Step -> If / IfStep / ConditionalStep
- ? ConditionalStep(...).then(...).else(...)
- ? conditional_step >> then | else
"?" steps are subject to discussion.
Children
handle config where conditional step has children Note that there are several separate design decisions:
- how to deal with children in conditional step itself
- what to do with children in "true branch" and "false branch"
- do we have to put "true branch" and "false branch" into the same structure as conditional step itself?