Channels
You have a build and need to decide where it lands. A channel is a named pointer to one released build; promoting a build into a channel is what releases it.
The seeded channels
There is exactly one default channel: preview. Promotions land there when you name no target. stable always exists as a promote target. Nothing else is seeded: beta does not exist until you create it, and every other channel is user-created.
canary is a legacy alias of preview. A project that still references canary resolves it to preview rather than failing.
Naming
Channel names match ^[a-z0-9-]+$. Channels can be per-browser: chrome-preview and firefox-stable are ordinary channels that hold one browser's releases.
What a channel records
Each channel records the sha of the build it currently serves, a color, and a description. Promotion moves the pointer; the artifacts are byte for byte the artifacts of the promoted build, which is what makes a channel testable.
Channels and environments
A channel bound to an environment accepts only builds stamped with that environment. Promotion does not rebuild, so a build carries its stamp into whatever channel it enters. A mismatch is refused with BUILD_ENV_MISMATCH, see Promote gates.
Channels and stores
Store submissions read from a channel. Submitting with --channel stable takes whatever build stable currently holds. See Publishing.
When it fails
- Channel name rejected. The name does not match
^[a-z0-9-]+$. Lowercase letters, digits and hyphens only. - Promotion refused with a code. The build failed a gate: wrong environment stamp, unknown sha, or a quota cap. Every code and its fix is in Promote gates.
canarybehaves likepreview. It ispreview. Create a channel of your own if you want a separate track.- Expected
betais missing. It is not seeded. Create it before promoting to it.
