lumio deploy
Upload a built extension bundle to Lumio as a new version. The version starts in draft status and must go through the submission wizard to enter the review process.
Usage
lumio deploy [-v <version>] [-d <description>] [--breaking] [--draft]
Example
# Build first, then deploy
lumio build
lumio deploy -v 1.2.0 -d "Added live score updates from ESPN"
Or let it read the version from lumio.config.json automatically:
lumio deploy -d "Fixed score display alignment"
Options
| Flag | Alias | Description |
|---|---|---|
--version <semver> | -v | Version string (default: reads from lumio.config.json) |
--description <text> | -d | Release notes / changelog for this version |
--breaking | — | Flag this version as a breaking change (disables auto-update for existing installs) |
--draft | — | Upload as draft without triggering the submission flow (default behavior — this flag is explicit) |
--outdir <path> | — | Location of the built bundle (default: .lumio-dist) |
What happens on deploy
- CLI reads
lumio.config.jsonand validatesextensionIdexists in Lumio - Bundle from
.lumio-dist/(or--outdir) is uploaded as a multipart upload source.tar.gzis uploaded alongside the bundle- A new
ExtensionVersionrecord is created with statusdraft - The CLI prints a link to the submission wizard
Deploying Sports Scoreboard v1.2.0...
Uploading editor bundle... ✓
Uploading layer bundle... ✓
Uploading server bundle... ✓
Uploading source archive... ✓
Version 1.2.0 deployed as draft.
Submit for review:
https://lumio.vision/dashboard/extensions/88b2478a.../versions/1.2.0/submit
CI/CD deployment
In CI environments, use LUMIO_TOKEN for authentication:
LUMIO_TOKEN=${{ secrets.LUMIO_TOKEN }} lumio deploy -v 1.2.0 -d "Automated release"
The CLI detects CI=true and skips interactive prompts.
Breaking changes
Mark a version as breaking to prevent auto-updates for users who have not manually reviewed the breaking change notes:
lumio deploy -v 2.0.0 --breaking -d "Storage format changed — manual migration required"
Breaking versions show a notice in the extension store and require users to manually accept the update.
Exit codes
| Exit code | Meaning |
|---|---|
0 | Deployment succeeded |
1 | Authentication error (run lumio login) |
2 | Validation error (missing build, invalid version, etc.) |
3 | Upload error (network failure, rate limit) |
4 | Extension not found (invalid Extension-ID) |