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.
# 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 clusterCommon 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.
skaffold run --default-repo=us-docker.pkg.dev/my-project/my-repoSplit with build, then render and apply
For a GitOps-style split, render with the build artifacts and apply the output.
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.yamlHow to prevent it
- Pick
runfor build-and-deploy,build+deployfor a split. - Remember
renderonly produces manifests; apply them explicitly. - Verify the cluster changed after the pipeline, not just the registry.