Universum icon indicating copy to clipboard operation
Universum copied to clipboard

Implement conditional steps execution

Open miltolstoy opened this issue 3 years ago • 2 comments

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 Configuration support instead of Step for 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 critical flag 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_set flag

  • [ ] check background execution

  • [ ] check work with TeamCity tags (link1, link2)

  • [ ] handle config where conditional step has children (link): run child steps before branch steps, use critical flag logic

See discussions and proposals under https://github.com/Samsung/Universum/issues/636

miltolstoy avatar Mar 14 '22 09:03 miltolstoy

Preliminary development plan was created during the task discussion:

  1. Step(..., if_succeeded=..., if_failed=...)
  2. ? Step -> If / IfStep / ConditionalStep
  3. ? ConditionalStep(...).then(...).else(...)
  4. ? conditional_step >> then | else

"?" steps are subject to discussion.

miltolstoy avatar Mar 15 '22 06:03 miltolstoy

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?

i-keliukh avatar Oct 07 '22 07:10 i-keliukh