Skip to main content
Deploy

Git deployments

Configure automatic deployments from branches and pull requests.

Connecting a Git repository lets Easel create deployments from commits pushed to that repository.

Production branch

Each project has one production branch. The default is main.

A push to the production branch creates a Production deployment.

Common production branches include:

main
master
production

Change the production branch in Project settings → Environments. The change affects future deployments only.

Preview branches

A push to any other branch in the connected repository creates a Preview deployment.

Each commit creates a new deployment. A stable branch preview URL moves to the latest Ready deployment for that branch.

Pull requests

Opening or updating a pull request does not by itself create a deployment. A push to the head branch does. When an open pull request exists for that head branch, Easel also assigns a pull request preview URL.

Easel can report deployment status to the Git provider and post the preview URL on the pull request and related commits.

Merging a pull request

The Preview deployment remains a Preview artifact.

When the merge commit lands on the production branch:

  1. Easel creates a new Production deployment from that commit
  2. The new deployment uses Production environment variables and settings
  3. It becomes Current if Auto-assign production domains is on, or stays Staged if auto-assign is off

Production output can differ from the Preview deployment because Production variables and settings can differ.

Skipping deployments

Easel supports two skip controls in Project settings → Build:

Skip unaffected deployments

Enabled by default. When a push does not change this project's root directory or its workspace dependencies, Easel creates a Skipped deployment instead of running a build.

Ignored build step

Optional shell command run after clone on Git deploys. Exit code 0 cancels the build (status Canceled). Any other exit code continues the build.

Example:

npx turbo-ignore

A skipped deployment is distinct from a canceled or failed deployment.

Monorepos

For monorepo setup, root directories, skip rules, and multi-project repositories, see Monorepos.

Forks and untrusted code

Deployments run for pushes to the connected repository. There is no separate fork-approval workflow that withholds secrets for forked pull requests.

Keep Production credentials out of Preview variables, and enable Deployment Protection when preview hostnames must not be public. See Preview deployments.

Optional: require verified (signed) commits in project Git settings when you want unsigned commits blocked.

Disconnecting Git

Disconnecting a repository stops future automatic Git deployments.

It does not delete existing deployments or immediately remove their URLs. You can later connect a different repository; new deploys follow the new connection, while historical deployments keep their recorded source metadata.

Git provider permissions

Easel requests access so it can:

  • Read repository contents for builds
  • Read commit metadata
  • Discover open pull requests for preview URLs
  • Create commit statuses or checks
  • Receive webhooks for pushes
  • Post deployment comments with preview URLs

If you remove permissions, the matching features stop working: for example, without webhook access Easel no longer creates deployments on push.