A lifecycle is an ordered set of phases. Each phase contains one or more environments. A release in a project pinned to a lifecycle can only be deployed to a phase once all previous phases have succeeded - unless a phase is marked optional, or a channel overrides the path.
What a lifecycle looks like
The default lifecycle has three phases: Dev, Staging, Production. Each phase has a single environment. A release enters Dev, then becomes eligible for Staging once Dev succeeds, then becomes eligible for Production once Staging succeeds.
Beyond the default
Lifecycles can encode more than the canonical three-stage path.
// Parallel phase
Multiple environments in one phase
A Pre-prod phase containing both Staging and UAT. The release must succeed in both before Production becomes eligible.
// Optional phase
Skippable when needed
A Smoke phase that's optional. Standard releases use it. Hotfix releases skip it - recorded as skipped, not as a gap in history.
Channels
A channel attaches a lifecycle to a project. The default channel uses the standard lifecycle. A hotfix channel can attach a shorter lifecycle that skips Dev. Releases pick which channel they're created under - same project, two paths.