Skip to main content
.github/actions/deploy is a composite GitHub Action that deploys an already-built image to a Levelrail app and waits for the rollout to converge before the job finishes. It wraps two CLI commands, apps deploy and apps wait, so anything it does you can also script in a shell step. The action’s own README has a complete example workflow. The short version:
The action does not build your image. Build and push it in an earlier step, then pass the reference as image. The status output is succeeded, failed, or skipped (when wait is false). The action installs a prebuilt levelrail-cli from GitHub Releases (Linux and macOS, amd64 and arm64), verifies its checksum, and by default picks the newest release, pre-releases included while no stable release exists. Pin one with cli-version: v0.2.0-beta.15. To run other CLI commands in a job, install the CLI on its own with the setup-cli action. Its input is version:

Not tied to GitHub Actions

apps deploy and apps wait are ordinary levelrail-cli commands with real exit codes, so the same pattern works in GitLab CI, CircleCI, Jenkins, or a shell script.

Getting the API token and URL into GitHub

Set two secrets in your GitHub repository or environment:
  • LEVELRAIL_API_URL: your control plane’s base URL, for example the domain fronting it or https://host:8080.
  • LEVELRAIL_API_TOKEN: a token with at least the deploy ability. Create it under Settings > Tokens or with levelrail-cli tokens create --name github-actions --abilities deploy. Storing it as a secret keeps it out of workflow logs.

Next steps

CLI reference

apps deploy and apps wait in full.

Identity and access

Token creation and abilities.

Git integrations

Webhook-based deploys as an alternative.

Deploying apps

The full app lifecycle.
Last modified on October 12, 2026