What is the correct way to structure an octopus process with channels?

My deployment build has:

  1. Two deployment modes - FirstTime and Update.
  2. Optional steps to run integration tests.
  3. Optional steps to run deployment smoke tests.
  4. 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?

Hi Mark,

Thanks for getting in touch,

I’m sorry to hear you are experiencing some confusion in this area, hopefully I can be of assistance.

Based on the information provided in your query, it sounds like you would instead benefit by providing environment level scoping in the Conditions of the individual process steps, as highlighted in the screenshot provided below;

In this way, you’ll be able to control where specific steps execute whenever you require the use of different channels.

If I’ve misunderstood your query in any way, or if you require any further assistance or clarification, please let me know :slight_smile:

Have a great day!

Kind Regards,


This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.