A channel preset gives a project a set of release channels, each with a name you choose, a deploy environment, an image tag and a way of holding its data. Merges are collected first. A build then moves up through the channels only when each channel’s checks pass.
The nightly, weekly, monthly preset
Today there is one preset, nightly-weekly-monthly. It sets four channels.
| Channel name | Takes builds | Deploys to environment | Image tag | Database |
|---|---|---|---|---|
| merged | Every merge that passes checks | None, it only collects merges | None | Shared |
| nightly | The night’s build, each day at 02:00 UTC | preview |
preview |
Shared |
| weekly | A week’s build, Tuesdays at 02:00 UTC, after 24 hours on nightly | latest |
latest |
Shared |
| monthly | A month’s build, the first Tuesday at 02:00 UTC, after 168 hours on weekly | stable |
stable |
Shared |
Set it from the command line with an agent token for the team, or as a person who manages policy:
overlane channel preset nightly-weekly-monthly --dry-run
overlane channel preset nightly-weekly-monthlychannel preset shows each channel as a line such as “Deploys to latest as latest, shared database”. The Releases screen in the web app shows the same line under each channel, and the same choice under Channels, Channel preset.
Channel to environment and image tag
Each channel names one environment of the project and one image tag. When a build reaches the channel, Overlane deploys it to that environment and the build carries that tag in your registry. A channel with no environment only collects merges.
The mapping does not depend on what the environment runs. Any environment of the project can sit behind a channel. Two channels cannot share a name, an image tag or an environment.
Shared and own database
Each channel holds its data one of two ways.
- Own database. The channel has its own database. A build brings its migrations when it arrives, and they run at once.
- Shared database. Every shared channel uses one database. An additive migration, such as a new table or a nullable column, runs at once. A migration that removes or renames something waits.
Why a migration waits
On a shared database, a channel that still runs older code needs the current schema. If a build on the weekly channel removes a column, the monthly channel is still running code that reads it. Running the removal would break the monthly channel.
So Overlane holds the step. The Releases screen lists it under Waiting migrations with the channel names it waits on, such as “Waiting on monthly”. When no shared channel runs the old code any longer, for example after the newer build reaches monthly, the step runs on its own. Add the new shape first, move the code over, then remove the old shape in a later build.
Deploy targets
A channel’s environment can sit on a Cloudflare Worker, a Vercel project, a Netlify site, a Fly app, an AWS Lambda function or a container image with its Postgres database. A container target’s channels name the tag each environment follows, such as production=stable.
See Environments and previews for adding a target and an environment, and Releases for signed releases of the Overlane plugin.