Deployments and rollbacks
A deployment is one build-and-release of one commit. The app page lists them newest first under Deployments, and the one serving visitors is marked Active.
Starting a deployment
Section titled “Starting a deployment”| Trigger | When |
|---|---|
| GitHub push | Every push to the app’s branch, while Deploy automatically on push is on (the default). |
| Deploy button | Deploys the branch’s latest commit now. Use it after changing settings or variables, or when automatic deploys are off. |
| Redeploy this commit | On a deployment’s page. Builds that exact commit again from source. |
| Roll back to this version | On an earlier deployment’s page. Reuses that version’s image without rebuilding. |
One deployment runs at a time per app. If you push or click Deploy while one is running, the latest commit is queued and deploys next.
Developers, admins and owners can deploy. Viewers can see deployments and logs.
Statuses
Section titled “Statuses”| Status | Meaning |
|---|---|
| Queued | Waiting for the one before it, or for a worker to pick it up. |
| Building | Fetching the code and building the image. |
| Build failed | The build stopped. Its log shows the error. Nothing changed for visitors. |
| Deploying | Starting the new version and running the health check. |
| Running | Live. Visitors are served by this version. |
| Deployment failed | The new version didn’t start or failed its health check. The previous version kept serving. |
| Stopped | A previous version, replaced by a newer one. |
| Canceled | Stopped before finishing, for example because the app was deleted. |
Safe by default
Section titled “Safe by default”A new version only takes traffic after it starts and passes its health check. If anything goes wrong, Shiplon puts the previous version back the way it ran before, including its port and health check settings. A failed deployment doesn’t replace a working version.
The very first deployment of an app has nothing to fall back to: if it fails, there is simply no running version yet.
Two time limits apply: a build may take up to 15 minutes, and a new version must be ready within 5 minutes of starting.
Roll back to an earlier version
Section titled “Roll back to an earlier version”Use this when a release causes problems and you need the previous version back now.
- On the app page, open the earlier deployment from the Deployments list.
- Click Roll back to this version.
The rollback creates a new deployment that reuses that version’s exact image, so nothing is rebuilt. It still starts the version and runs the health check, but skips the build, which is usually the slow part. Shiplon keeps the images of the current version and the 5 before it. For older versions, use Redeploy this commit instead, which builds the same commit again.
Redeploy
Section titled “Redeploy”Redeploy this commit builds the same commit again from source, with the app’s current settings and variables. Use it when:
- you changed a variable or setting and want it in the running version without pushing;
- an image for an older version was cleaned up and rollback isn’t available;
- a build failed for a temporary reason, such as a package registry being down.
Turning automatic deploys off
Section titled “Turning automatic deploys off”On the app page, switch off Deploy automatically on push. Pushes then don’t deploy, and you deploy with the Deploy button. This is useful while you work on a risky change, or if you want to release at a chosen time.