Skip to content
Latchkey

Skaffold nothing deployed: run vs build vs render in CI

The three commands do different things: build builds and pushes images only, render outputs manifests without applying them, and run builds and deploys. A pipeline that calls build and expects a deploy will push images but change nothing in the cluster.

What this error means

CI reports a successful skaffold build, but the cluster is unchanged because no deploy command ran. Or skaffold render prints YAML that was never applied.

skaffold
# build only pushes images; it does not deploy
$ skaffold build --default-repo=us-docker.pkg.dev/my-project/my-repo
Build [my-app] succeeded
# ... nothing deployed to the cluster

Common causes

Using build when a deploy is expected

skaffold build stops after pushing images; it never touches the cluster, so the deploy step is simply missing.

Rendering without applying

skaffold render writes manifests to stdout or a file; unless you pipe them to kubectl apply, nothing is deployed.

How to fix it

Use run for a combined build and deploy

When one step should build and deploy, use skaffold run.

Terminal
skaffold run --default-repo=us-docker.pkg.dev/my-project/my-repo

Split with build, then render and apply

For a GitOps-style split, render with the build artifacts and apply the output.

Terminal
skaffold build --file-output=build.json --default-repo=us-docker.pkg.dev/my-project/my-repo
skaffold render --build-artifacts=build.json > manifests.yaml
kubectl apply -f manifests.yaml

How to prevent it

  • Pick run for build-and-deploy, build+deploy for a split.
  • Remember render only produces manifests; apply them explicitly.
  • Verify the cluster changed after the pipeline, not just the registry.

Related guides

Tired of flaky CI? Latchkey auto-heals failed jobs and retries them for you. Start free →