Documentation menu
Build and ship

Environments and deploying

Configure environments, let Skaftor deploy to your Google Cloud, or record what your own pipeline deploys with Mark as deployed, pipeline reports and deploy hooks.

Environments are set up in Settings › "Environments" — dev, qa and prod by default. Each becomes a "Deploy to <env>" step in the workflow. For each one, choose "Who deploys this environment?".

Skaftor deploys it

Skaftor builds the repository with Cloud Build and runs it on your connected Google Cloud project — as a Cloud Run service (a web app or API) or on Vertex AI Agent Engine (an AI agent). Configure your app's settings and secret names, health checks and smoke tests, an optional canary ("Try the new version on some traffic first"), and feature flags. Skaftor currently builds GitHub repositories.

On a feature's Deploy tab, "Deploy <phase> to your cloud" appears once every work order in that phase is merged. Deployments support canary "Roll out" and "Roll back".

Your team or pipeline deploys it

For non-production environments your own pipeline deploys, Skaftor never builds or deploys — it records and checks what is live. Describe the environment's URL and components (repository, URL, health and version pages), then tell Skaftor about each deploy in one of three ways:

  • Mark as deployed — on Ship › Environments, paste the commit for each component and confirm the rollout finished.
  • Pipeline reports — your deploy script posts started, finished or failed to Skaftor with a report token.
  • Deploy hook — Skaftor asks your receiver (a signed webhook) to deploy a branch; your pipeline then reports what ran.

Each component shows what Skaftor knows — "Verified", "Health answered", "Being deployed", "Deploy failed", "Did not finish" and more. Skaftor can't see a change nobody marked or reported.

Before you ship

The Deploy tab collects readiness, environment variables, QA test runs, verification against the PRD on live traffic, and agent evals. Deployment gates (Ship › "Deployment gates") are app-specific rules generated from your code; each is enforced or warn-only, and the verdict is "Clear to deploy" or "Deployment blocked".

Production only ships released code: the commit must be on the release branch.