CommandsApps

skytells deploy · deployments ls

Deploy an app from source and list deployment history with the Skytells CLI.

Overview

skytells deploy triggers a new deployment of a Skytells app — building from source, pushing the image, and releasing to the platform. skytells deployments ls retrieves the deployment history for an app.


skytells deploy

Deploys an app by its app ID. Skytells builds your source code, produces a container image, and rolls out the new version. The CLI streams progress until the deployment completes.

Syntax

skytells deploy <app> [--json]

Arguments

ArgumentDescription
appThe app ID to deploy (begins with app_).

Flags

FlagDescription
--jsonOutput deployment result as JSON.

Examples

# Deploy by app ID
skytells deploy app_abc123

# Deploy and capture deployment ID
DEPLOY_ID=$(skytells deploy app_abc123 --json | jq -r '.id')
echo "Deployment: $DEPLOY_ID"

Example terminal output:

⠋ Queuing deployment...
⠙ Building image...
  ✓ Compiling dependencies
  ✓ Running build steps
  ✓ Image pushed
⠸ Releasing...
  ✓ Health checks passed
✔ Deployment successful!
  Deployment ID: dep_xyz789
  Duration:      48s

Deployment lifecycle

When skytells deploy is called:

  1. A deployment record is created with status queued
  2. Skytells builds a container image from your app's source
  3. The image is tested with health checks
  4. The new version is released with a rolling update (no downtime)
  5. If health checks fail, the platform automatically rolls back to the previous version

skytells deployments ls

Lists the deployment history for an app. Use this to audit recent releases, check deployment timestamps, or retrieve a deployment ID for troubleshooting.

Syntax

skytells deployments ls [--app <id>] [--limit <n>] [--offset <n>] [--json]

Flags

FlagDescription
--app <id>The app ID to list deployments for. Defaults to the linked project's first app if omitted.
--limit <n>Number of deployments to return. Default: 10.
--offset <n>Pagination offset.
--jsonOutput as JSON.

Examples

# List last 10 deployments for an app
skytells deployments ls --app app_abc123

# Last 25 deployments
skytells deployments ls --app app_abc123 --limit 25

# Find the last failed deployment
skytells deployments ls --app app_abc123 --json | \
  jq -r '.[] | select(.status == "failed") | "\(.id) \(.created_at)"' | head -1

Example output:

┌─────────────┬─────────────────────┬──────────┬──────────────────────┐
│ ID          │ Created             │ Status   │ Duration             │
├─────────────┼─────────────────────┼──────────┼──────────────────────┤
│ dep_abc001  │ 2026-03-18 14:23    │ success  │ 48s                  │
│ dep_abc002  │ 2026-03-17 09:41    │ success  │ 52s                  │
│ dep_abc003  │ 2026-03-16 18:05    │ failed   │ 23s                  │
└─────────────┴─────────────────────┴──────────┴──────────────────────┘

CI/CD integration

In automated pipelines, suppress interactive output with --json and check the exit code:

# GitHub Actions deploy step
- name: Deploy
  run: |
    RESULT=$(skytells deploy ${{ env.APP_ID }} --json)
    echo "deploy_id=$(echo $RESULT | jq -r '.id')" >> $GITHUB_OUTPUT
  env:
    SKYTELLS_TOKEN: ${{ secrets.SKYTELLS_TOKEN }}
    SKYTELLS_ACCESS_KEY: ${{ secrets.SKYTELLS_ACCESS_KEY }}

See Advanced Usage: CI/CD Integration for full GitHub Actions and GitLab CI examples.

How is this guide?

On this page