Easiest way to deploy many feature branches to a single server without duplicating effort

Octopus Version #3.8.6

I created a generic feature branch channel in Octopus that has a version rule to pick up feature branch versions of one of our web applications following SemVer 2.0 guidelines for naming. This works for our single feature branch and now we have another one that is going to be developed in tandem with our default channel and this feature branch channel.

I’m starting to get the feeling that I may have to create a channel for each current feature branch being developed on in order to accomplish what I need. This will allow me to specifically target a feature branch version to deploy to our dev server since we could have multiple feature branches being developed on at the same time. Wanted to get some thoughts from others that have done this.

One thing to note is we don’t have the ability to spin up feature branch environments at the server level which is why we have to do it at the IIS Application or IIS Website level in our existing development servers.

Hi Justin,

Thanks for getting in touch here! It does sound like channels are the option you need here. And I do believe that a branching strategy is the best option for you. We have some fantastic documentation on how we handle branching in Octopus and how you can implement it to best suit your needs.

Having everything on a single environment should work perfectly fine, you would be able to create variables for things like AppPool name and PortNumber and have those variables scoped to your different channels. See screenshot1.jpg for an example here. Once you have configured variables for settings that are different between branches, you can call them in your step as illustrated in screenshot2.jpg.

Let me know if the above information helps, or if I can explain anything further. :slight_smile:

Best regards,
Daniel

Thank you for the prompt response. I was able to update my IIS Application and IIS Application Pool steps to use custom binding to append the - to the end of them. I assumed this was the easiest way to do this along with the variable scoped to the channel.