My deployment build has:
- Two deployment modes - FirstTime and Update.
- Optional steps to run integration tests.
- Optional steps to run deployment smoke tests.
- All in all about 50 steps (organized as parent-child steps)
I am struggling to understand what is the right way to structure the project, because right now it is one project with channels. Which is insane, because I have to define a Cartesian multiplication of channels:
<Kind = FirstTime or Update or None (i.e. use existing deployment)> X <Deployment Smoke Tests = Yes or No> X <Integration Tests = Yes or No>
All in all 3 * 2 * 2 - 1 = 11 channels
In general, using channels as switches seems not scalable at all.
Another option is just to define 3 variables and have the steps check their values. But it means to customize the script code of quite a few steps.
So, I am confused. I must be doing it wrong. What is the right way?