Skip to main content

Deployments

Every time you deploy a project, Swisblade creates a deployment record that tracks the entire process from start to finish.

Deployment flow​

When you click Deploy in the dashboard (or a deploy is triggered automatically):

  1. Git pull — Fetches the latest code from your configured branch/tag/SHA
  2. Validate — Checks that stack.json is valid and all referenced services are properly configured
  3. Sync contract — Detects changes to stack.json since the last deploy (new services, removed services, etc.)
  4. Inject env vars — Reads your secrets from the dashboard, decrypts them, and prepares them for the containers
  5. Provision infrastructure — Sets up any databases, caches, or queues declared in needs (if not already provisioned)
  6. Build & start — Builds Docker images from your source code and starts all containers

Deployment states​

StateDescription
pendingDeploy queued
runningBuild and startup in progress
successAll containers are running
failedSomething went wrong — check the logs

Viewing deploy logs​

Real-time streaming​

When a deploy is in progress, the dashboard streams logs in real time. You'll see each step as it happens: cloning, building, starting containers.

Historical logs​

All deploy logs are persisted. Go to Project → Deployments to see the full log of any past deployment.

Failure diagnostics​

If a deploy fails, Swisblade automatically captures:

  • The last 15 lines of output from each failed container
  • Error messages from the build step
  • Missing environment variable warnings

This diagnostic information appears in the deploy log.

Triggering a redeploy​

To redeploy with the latest code:

  1. Go to your project in the dashboard
  2. Click Deploy

Swisblade will pull the latest code from your configured ref, rebuild containers if the code changed, and restart the stack.

What triggers a rebuild​

ChangeRebuilds?
Source code changedYes
stack.json changedYes (affected services only)
Environment variable changedNo (restart with new env, no rebuild)
No changesContainers are restarted

Environment variable validation​

Before starting containers, Swisblade checks that all required environment variables have values. If your stack.json declares:

"env": {
"STRIPE_KEY": { "secret": true }
}

And you haven't set STRIPE_KEY in the dashboard, the deploy will fail with a clear message listing the missing variables.

Connection strings generated by the platform (like DATABASE_URL) are always present and don't need manual configuration.