stack-orchestrator/stack_orchestrator/data/stacks/test-restart-multi
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
..
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-multi

E2E test stack used by tests/k8s-deploy/run-restart-test.sh to cover the multi-repo case: pods: references two pod repos, each shipping its own deploy/commands.py. deploy create should produce <deployment>/hooks/commands_0.py and <deployment>/hooks/commands_1.py, and deployment start should invoke both start() hooks (each writes its own marker file so neither overwrites the other).

The pod repos themselves are created by the test script as bare-repo + working-clone pairs under $CERC_REPO_BASE_DIR/test-restart-pod-{a,b}; they are not committed to this repository. Each pod repo ships its own docker-compose.yml (resolved by get_pod_file_path for dict-form pods) and stack/deploy/commands.py — the stack repo only owns stack.yml.