Skip to content

Deploying

Deployments and rollbacks

See every deployment of an app, follow one, cancel it, or roll back to an earlier build.

Every deploy, push, preview and rollback creates a deployment record. Each one has an ID, a status, a source and the commit it was built from.

Statuses and sources

StatusMeaning
pendingAccepted, waiting to start
buildingCloud Build is building the image
deployingThe image is being rolled out to Cloud Run
successLive
failedThe build or rollout failed. The error is saved with the deployment
cancelledStopped before it finished
SourceStarted by
manualelula deploy or the Deploy button
pushA push to the app's branch (auto-deploy)
prelula preview
rollbackelula rollback or rollback to this build

List and inspect deployments

elula deployments                 # the 10 most recent
elula deployments --limit 30
elula deployments --json
elula deployments show 7c41e0a2   # one deployment: status, source, commit, URL, error

You can use the short IDs that elula deployments prints. elula deployments show also prints the PR number and preview tag for previews.

In the dashboard, open the app's Deployments tab. The current live deployment is marked live.

Build logs

elula logs                         # build logs of the latest deployment
elula logs --deployment 7c41e0a2   # a specific deployment

Rollbacks have no build logs, because they reuse an earlier image. If a build passed but the deployment still failed, the app most likely didn't start. Check elula runtime-logs. See Logs and metrics.

One deployment at a time

An app can have only one deployment in progress. If you start another, you get:

A deployment is already in progress.
Follow it with: elula logs   ·   or replace it with: elula deploy --force
elula deploy --force   # cancel the deployment in progress, then start a new one
elula cancel           # just cancel the deployment in progress

In the dashboard, an in-progress deployment has a cancel build link.

Roll back

A rollback redeploys the image of an earlier successful deployment. Nothing is rebuilt, so it is fast.

elula rollback                 # back to the successful deployment before the current one
elula rollback 7c41e0a2        # back to a specific successful deployment
elula rollback 7c41e0a2 -y     # skip the confirmation prompt

In the dashboard, open Deployments and click rollback to this build on any successful deployment that isn't live. The header's Rollback button takes you there. Traffic switches as soon as the rollback is live.

Things to know:

  • You can only roll back to a deployment with status success. With no ID, elula rollback skips preview deployments.
  • A rollback can't start while another deployment is in progress. Wait, or run elula cancel.
  • The old image runs with the app's current environment variables, secrets and scaling settings, not the ones it had at the time.
  • Build-time variables (NEXT_PUBLIC_*, VITE_*, REACT_APP_*, NUXT_PUBLIC_*) are part of the old image, so they keep their old values.
  • The next push or elula deploy builds the branch again and replaces the rollback.
  • Rollbacks are for services. To run an older version of a job, put the older code on the job's branch and run elula deploy.

Subscription

Deploys and rollbacks need an active subscription. Without one, they are refused with: "Subscribe to deploy. Apps that are already running keep running." See Billing.