Skip to main content
Deploy

Deployments

How Easel builds deployments, and how Preview and Production environments differ.

A deployment is a built version of your application: the static assets, functions, and routing produced from one source revision with one set of project settings and environment variables. Easel never changes a deployment after it's built. A new commit or a settings change takes effect in a new deployment.

How a deployment is built

Each deployment moves through Queued, Provisioning, Building, and Assigning domains to Ready. Once it's Ready, it serves traffic on its own unique URL. A deployment that doesn't get there ends as Failed, Canceled, or Skipped. See Deployment statuses.

When a deployment is created, Easel takes a snapshot of the project's build settings and the environment variables for its environment. The build and its functions use that snapshot for the life of the deployment, so later changes apply only to new deployments.

Preview and Production

Every deployment belongs to one of two environments. The environment decides which environment variables the deployment gets and whether it can serve your production domains.

PreviewProduction
PurposeTest changes before releaseServe live traffic
Created byPushes to any other branch, easel deployPushes to the production branch, easel deploy --prod, Deploy in the dashboard
Environment variablesPreview valuesProduction values
URLsUnique, branch, and pull request URLsUnique URL, plus production domains when Current
AccessPublic unless deployment protection is onProduction domains are always public

Easel never serves a Preview build on production domains. Promoting a Preview deployment rebuilds the same commit as a new Production deployment. See Promote a Preview deployment.

Production branch

Each project has one production branch, main by default. Change it in Project settings → Git. The change applies to future pushes only: existing deployments keep their environment and URLs.

Environment isn't traffic

A Production deployment doesn't always serve your production domains. It can be building, Staged (Ready but not yet promoted), Current, or an older deployment you can roll back to. Promote production builds automatically, in Project settings → Git, decides whether a Ready Production deployment goes live on its own. See Promote and roll back.

Create a deployment

  • Git: connect a repository and every push creates a deployment. Pushes to the production branch create Production deployments, and pushes to other branches create Preview deployments. See Git deployments.
  • CLI: run easel deploy from your project directory for a Preview deployment, or easel deploy --prod for Production. See Deploy from the CLI.
  • Dashboard: Deploy on the project overview creates a Production deployment from the latest commit on the production branch.

To deploy a commit that isn't the latest on its branch, check it out and run easel deploy, or promote a Ready Preview deployment of that commit.

There's no special first deployment. A project can have Preview deployments before its first Production one. Generated Easel hostnames are assigned when a deployment is Ready, and custom domains are added separately in Project settings → Domains. See Domains.