documentation

steer docs

Deploys

Preview → confirm → live rollout. Tag pickers, registry validation, stuck detection and one-command rollback.

The flow

Every deploy follows the same shape, in the CLI and the TUI: preview what will happen → confirm → follow the rollout live. Nothing mutates without showing you first.

$ steer --context stg service deploy -s api -t v1.2.3
Deploy preview (stg):
  api: v1.2.2 -> v1.2.3
Apply? [y/N]:

No flags? A fuzzy picker opens for the service, then for the tag:

steer service deploy      # pick service and tag interactively

In the TUI: select the service, press d (or click [ Deploy (d) ]), and the inline form opens with a tag picker — your registry’s recent tags, filtered live as you type; ↑↓ or click to choose, enter to confirm.

Validated against your registry

With the images block configured, steer checks the tag before deploying:

  • Tag doesn’t exist in the repo → the deploy is blocked. No more deploying a typo.
  • Repo doesn’t exist → blocked, with a hint to check images.repo_template.
  • Registry unreachable (network, permissions) → the deploy proceeds with a warning. Validation never blocks CI on a transient registry problem.

Watching the rollout

Add --watch (-w) and steer follows the rollout until it completes or fails — service events stream in as they happen (poll every 3s):

$ steer service deploy -s api -t v1.2.3 -y -w
 deployed api -> v1.2.3
monitoring rollout (Ctrl+C to stop)...
[14:02:11] (service acme-stg-api) has started 2 tasks: (task abc123) (task def456).
Rollout: IN_PROGRESS | Running: 1 | Pending: 1 | Desired: 2
 deployment completed

In the TUI the same feed streams into the Events tab automatically.

Stuck rollouts don’t hang forever

ECS retries a bad image pull forever without ever reporting failure. Steer detects it: after 3 provisioning failures (image pull errors, no capacity) it stops the watch, tells you the rollout is stuck and suggests the rollback command. The TUI shows the same and points at R.

Rollback

One command, back to the previous task definition (a resize is rolled back too):

steer service rollback -s api

In the TUI: R or the [ Rollback (R) ] button, confirm, done.

CI usage

-y skips the confirmation; combine with --context and exact flags:

steer --context stg service deploy -s api -t "$GIT_TAG" -y --watch

Exit code is non-zero if the deploy fails, the tag doesn’t validate or the rollout gets stuck under --watch — safe to gate pipelines on.