We are getting to the final stages in preparation for our first production deployment of a web app, but are getting a little confused with the usage of channels and / or lifecycles. And were hoping you could provide some best practices guidance.
Up until now we’ve really had one lifecycle (the default lifecycle) that just deploys to all environments (develop > staging > production soon).
The versioning scheme that we are putting out, for example, is 2.1.0-unstable.32, 2.1.0-rc.53, and potentially a strict 188.8.131.52 version. In the last week, I’ve created two lifecycles: Nightly and Release. The nightly (-unstable) builds go straight to develop. We’re currently in code freeze, so producing -rc (release/2.x.x) builds go to staging for stakeholder testing.
But in creating a production environment in Octopus, I realized I’m not real sure what lifecycle or channel to put it on. Does it go in the Release channel? Or the default lifecycle? Or does it get it’s own entirely new channel and lifecycle?
We produce -unstable, -rc and strict 2.x.x.x builds
We have a develop, staging, demo, and production environment
We have a Nightly and Release channel, that both have their own corresponding Lifecycles (which seems a little weird, since it’s 1 to 1)