Skip to content

Deployment

The Deployment tab is three different things on one page. They do not all ship the build.

GitHub environments

If the repo has GitHub environments, this is a readout of the latest deployment per environment — SHA, ref, state. Open goes to GitHub. Nothing here deploys.

Deploy scripts

Scripts with kind: 'deploy' in .nocturnal/project.json run on this machine, same as any other script. They exit and leave history. They do not mark a version deployed.

Preview from a chat

Deploy preview in a chat's menu ships the branch your repository is checked out on to a temporary URL, using whatever the project already deploys with — a Firebase Hosting channel, a Vercel preview, a Netlify draft, a Cloudflare Pages branch build. It is detected from the repo (firebase.json, vercel.json, netlify.toml, wrangler.toml), so there is nothing to configure for those.

This never deploys to production. Every command used here is the host's own preview mechanism, and the link appears in the chat that built the work. Firebase channels expire after seven days and the chat marks the link stale when they do.

For any other host, add a script of kind: 'deploy' to .nocturnal/project.json with "preview" in its name — that command wins over detection. {channel} and {branch} are substituted:

{ "id": "preview", "name": "Deploy preview", "kind": "deploy", "command": "npm run deploy -- --alias {channel}" }

Mark deployed

Stamps the current entry in .nocturnal/versions.json. It does not push, tag, or run a host. Use it when that SHA is actually live so the dashboard and CI card can show it.

See Version control and Scripts.