Skip to main content
Manage releases and promote apps to production. Promoting from the CLI and cutting a GitHub release are the same operation: both take the latest live dev deploy to prod, and floo releases promote creates the GitHub release for you when a repo is connected.

list

List releases for an app.

Flags

JSON output


show

Show details for a specific release (tag, commit, promoted by, deploy ID, image digest).

Flags

JSON output


promote

Promote the latest live dev deploy to production. Creates a GitHub release if GitHub is connected. The API accepts the promote and runs it in the background; the command returns the tag and release URL, and floo deploys list --app my-app shows the prod deploy as it progresses.

What happens during promote

  1. Image selection. Promote deploys the images from the latest live dev deploy. It rebuilds only when the prod environment has a build-time env var (VITE_*, NEXT_PUBLIC_*, or REACT_APP_*); then each service is built again from the source deploy’s archived source with the prod values as build arguments.
  2. Migrations. For each service with a migrate_command in floo.app.toml, the command runs as a one-off job with prod env vars. On a promote that reuses the dev images, migrations run before any prod revision changes, and a failure marks the deploy FAILED and leaves production traffic where it was. On a promote that rebuilds because prod has build-time env vars, a migration failure is logged and the rollout continues. floo redeploy --skip-migrations has no effect on promote. See Run migrations through migrate_command.
  3. Routes. The shared app host ({app}.on.getfloo.com) and per-service hosts ({app}-{svc}.on.getfloo.com) are upserted, so stale routes from before a service rename are corrected.
  4. Access grants. The gateway is granted invoke access on public services, and the app identity on internal services.

Flags

Examples

JSON output

release_url is empty when no GitHub repo is connected.

rollback

Roll back to a previous live deploy by re-pointing gateway routes at its image: no rebuild. This is the release-scoped equivalent of floo deploys rollback.

Flags

Rollback is tier-2 destructive: interactive mode prompts y/N; non-interactive runs require --yes.

Errors