stack-orchestrator/stack_orchestrator/data/stacks/test-restart
prathamesh0 7c65d39bb2
Smoke Test / Run basic test suite (push) Failing after 0s Details
Lint Checks / Run linter (push) Failing after 0s Details
Webapp Test / Run webapp test suite (push) Failing after 0s Details
K8s Deploy Test / Run deploy test suite on kind/k8s (push) Failing after 0s Details
Publish / Gate: k8s deploy e2e (push) Failing after 3s Details
Deploy Test / Run deploy test suite (push) Failing after 0s Details
Publish / Build and publish (push) Has been skipped Details
Make deployments self-sufficient and add E2E restart test (#750)
- `deploy create` now copies each pod's `commands.py` into `<deployment>/hooks/`. `call_stack_deploy_start` loads from there, so `deployment start` / `restart` no longer need the live stack source on disk to run the `start()` hook
- Only the `start()` hook is affected. `init`, `setup`, and `create` still load from the live source — they only run at `deploy create` time, when the source is guaranteed to be present
- Multi-repo stacks produce `hooks/commands_0.py`, `hooks/commands_1.py`, …; `call_stack_deploy_start` loads them all in sorted order
- Adds `tests/k8s-deploy/run-restart-test.sh` covering the full single-repo restart cycle (v1 -> mutate working tree -> `restart` re-copies and re-executes v2) and the multi-repo file-naming + multi-hook invocation. Wired into the existing **K8s Deploy Test** workflow
2026-04-28 17:28:02 +05:30
..
deploy Make deployments self-sufficient and add E2E restart test (#750) 2026-04-28 17:28:02 +05:30
README.md Make deployments self-sufficient and add E2E restart test (#750) 2026-04-28 17:28:02 +05:30
stack.yml Make deployments self-sufficient and add E2E restart test (#750) 2026-04-28 17:28:02 +05:30

README.md

test-restart

E2E test stack used by tests/k8s-deploy/run-restart-test.sh.

The stack ships a small start() hook that writes a versioned marker file into the deployment directory. The test exercises deployment restart:

  1. deploy create → asserts commands.py was copied into <deployment>/hooks/.
  2. deployment start → asserts the marker file contains the v1 string.
  3. Modifies commands.py in the stack-source working tree (v1 → v2).
  4. deployment restart → asserts the new commands.py was re-copied into <deployment>/hooks/ and the marker file now contains the v2 string.

The pod uses a public busybox image that just sleeps; the marker file is the only thing under test.