Skip to content

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.
  • canary behaves like preview. It is preview. Create a channel of your own if you want a separate track.
  • Expected beta is missing. It is not seeded. Create it before promoting to it.

Next