Files
OpenShell/build/docker.toml
T
Drew Newberry 07b5ddac33 feat(cluster): speed up local deploy loop with incremental change tracking (!53)
## Summary
- Track last deployed local changes and only redeploy new deltas in auto mode.
- Add per-component fingerprints (server/sandbox/helm) persisted to .cache/cluster-deploy-fast.state.
- Update docs for the new incremental deploy behavior.

```
mise run cluster

....

________________________________________________________
Executed in   75.21 secs      fish           external
   usr time  578.03 millis    0.25 millis  577.78 millis
   sys time  364.45 millis    1.22 millis  363.22 millis
```

with a change to `navigator-sandbox` (triggers rust recompile)

```
⟩ time mise run cluster:deploy
[cluster:deploy] $ build/scripts/cluster-deploy-fast.sh
Change detection took 0s
Fast deploy plan:
  build server:  0
  build sandbox: 1
  helm upgrade:  1

...

________________________________________________________
Executed in   25.88 secs      fish           external
   usr time  618.91 millis    0.24 millis  618.67 millis
   sys time  557.71 millis    1.54 millis  556.18 millis



```

(most time is spent in docker build)

## Test Plan
- mise run pre-commit
2026-02-25 08:34:43 -08:00

39 lines
1.3 KiB
TOML

# Docker image build tasks
["docker:build"]
description = "Build all Docker images"
depends = [
"docker:build:sandbox",
"docker:build:server",
"docker:build:cluster",
]
["docker:build:ci"]
description = "Build the CI Docker image"
run = "build/scripts/docker-build-component.sh ci"
["docker:build:sandbox"]
description = "Build the sandbox Docker image (base variant)"
run = "build/scripts/docker-build-component.sh sandbox --build-arg RUST_BUILD_PROFILE=${RUST_BUILD_PROFILE:-debug}"
["docker:build:sandbox:nvidia"]
description = "Build the NVIDIA GPU sandbox Docker image"
depends = ["docker:build:sandbox"]
run = "build/scripts/docker-build-component.sh sandbox nvidia --build-arg BASE_IMAGE=navigator/sandbox:${IMAGE_TAG:-dev}"
["docker:build:server"]
description = "Build the server Docker image"
run = "build/scripts/docker-build-component.sh server"
["docker:build:cluster"]
description = "Build the k3s cluster image (component images pulled at runtime from registry)"
run = "build/scripts/docker-build-cluster.sh"
["docker:build:cluster:multiarch"]
description = "Build multi-arch cluster image and push to a registry"
run = "build/scripts/docker-publish-multiarch.sh --mode registry"
["docker:publish:cluster:multiarch"]
description = "Build and publish multi-arch cluster image to ECR"
run = "build/scripts/docker-publish-multiarch.sh --mode ecr"