DeployingDeploy from GitHub

Deploy from GitHub

Connect a GitHub repository for git push to deploy: Lizard builds and redeploys your app whenever you push to the tracked branch. Run lizard add -r owner/repo to create the service; for a private repository, connect the Lizard GitHub App first with lizard git connect. This is the recommended way to run an app you keep in GitHub. For code with no remote, deploy from local code instead.

Create a service from a repo

lizard add -r your-org/your-app

This creates a github-source service, clones the repo, auto-detects the stack (lizardpack), builds it, and returns a live URL. Useful flags:

FlagPurpose
-r, --repo <owner/repo>Source repository
-n, --name <name>Service name (used in ${{name.KEY}} refs and the dashboard)
-v, --variables <K=V>Seed an env var; repeatable
--region <code>Region to deploy in
--no-deployAttach the repo but skip the first build

Private repositories

Connect the Lizard GitHub App once per account to grant access to private repos:

lizard git connect
lizard git status        # show connection + repo status

You can also connect and manage repository access from the GitHub integration page in the dashboard (lizard open).

Point an existing service at a repo

To switch a service to a git source (or change the repo/branch):

lizard service set api \
  --set sourceType=github \
  --set repoUrl=https://github.com/your-org/your-app \
  --set branch=main

Changing a build field rebuilds a running service. Running redeploy afterward will queue two builds. A crashed or never-deployed service needs lizard redeploy.

Note: lizard up always forces sourceType=upload. Don’t use it to update a git-backed service: push to the remote or use lizard redeploy instead.

Auto-redeploy on push

Once repoUrl is set, pushes to the matching branch redeploy automatically via the GitHub webhook. Connect the Lizard GitHub App (lizard git connect) so Lizard receives push events for the repository. To scope which pushes trigger a redeploy:

  • rootDirectory: only build a subdirectory (monorepos).
  • watchPatterns: only redeploy when matching paths change.
lizard service set api --set watchPatterns='apps/api/**,packages/**'

Switch branches

lizard git checkout api staging      # move the `api` service to the `staging` branch and redeploy

Monorepos

For a repo that holds several apps, create one service per app and set its rootDirectory to the subpath:

lizard add -r your-org/monorepo -n api --no-deploy
lizard service set api --set rootDirectory=apps/api
lizard redeploy --service api

If your current directory is a sub-app inside a repo whose parent is already linked, add the service in the parent’s project and set rootDirectory to the cwd subpath.

See also

Updated