Both channels have different lifecycles to deploy to different targets, with different environments
Environments are:
Channel A - Dev - contains machine A
Channel B - Test - contains machine B
I need to deploy packages according to the channel being chosen.
Package A would go to machine A if choosing channel A
Package B would go to machine B if choosing channel B
Both my packages are inside the Octopus feed.
I have taken a look at the below page:
However I don’t feel this works in this scenario.
My issue has stemmed from the fact that I am dependent on the Octopus project name variable to create my websites and backups etc, and am unable to create two projects with the same name in different groups.
Based on your scenario, I think you can achieve deploying Package A to any machines in the environment applicable to Channel A and deploying Package B to any machines in the environment Channel B using a variable which is scoped to each Channel (https://octopus.com/docs/deployment-process/channels).
For this, you can continue to use your one project - I’ve created one called Channel-Based-Packages
Once you have set-up your Channels to include the relevant environments, I added a variable called WebsitePackageID
Just a couple of notes on your scenario in general:
If the application packages you are deploying are genuinely different, e.g unrelated websites, you could have 2 projects with different names. If you rely on a common name for the website and backups etc, you can create a common Library Variable Set (https://octopus.com/docs/projects/variables/library-variable-sets) and add to each project and use that in your projects instead of using the built-in one for the project name.
If you didn’t want to use variables at all, you could have each step in a single project and hard-code the package names in each step, and scope the deployment step to each channel (see screenshot below). This isn’t my preferred option, but letting you know about it for complete transparency on options available.