Summary
Create purpose-built Brev launchables for CI/CD E2E testing that push as much setup as possible into the pre-baked VM image, reducing per-run setup time and eliminating the timeouts and flakiness that come from installing Docker, pulling images, and building deps on every CI run.
Motivation
The current E2E Brev workflow (e2e-brev.yaml + brev-e2e.test.js) has been brittle because every run bootstraps a bare VM from scratch — installing Docker, Node.js, OpenShell CLI, cloning repos, pulling multi-GB Docker images, and building the sandbox. This 10-15 minute setup window is where most CI failures occur (apt mirror timeouts, Docker pull rate limits, npm registry hiccups).
We previously had a Brev launchable (launch-nemoclaw.sh from OpenShell-Community) that pre-installed the foundational dependencies, but it was designed for interactive developers (code-server + VS Code theming) rather than CI. We removed it when the readiness detection was unreliable, not realizing the pre-baked setup was actually saving significant time.
Approach
Create CI-focused launchables (private, under Nemoclaw CI/CD org) with startup scripts that:
- Pre-install all system deps (Docker, Node.js, OpenShell CLI)
- Pre-pull Docker images (
sandbox-base, openshell/cluster, node:22-slim)
- Pre-install npm dependencies and build the TypeScript plugin
- Use a reliable sentinel file for readiness detection
- Skip code-server and other interactive-only tooling
Flavors
- Flavor 1: CI-Ready CPU — For PR E2E tests (credential-sanitization, telegram-injection, full E2E). Saves ~5-10 min/run.
- Flavor 2: CI-Ready GPU — For Ollama/local inference tests. Adds NVIDIA Container Toolkit + Ollama.
- Flavor 3: Full-Sandbox-Ready — For nightly runs. Pre-builds the sandbox Docker image.
Success Criteria
Related
Summary
Create purpose-built Brev launchables for CI/CD E2E testing that push as much setup as possible into the pre-baked VM image, reducing per-run setup time and eliminating the timeouts and flakiness that come from installing Docker, pulling images, and building deps on every CI run.
Motivation
The current E2E Brev workflow (
e2e-brev.yaml+brev-e2e.test.js) has been brittle because every run bootstraps a bare VM from scratch — installing Docker, Node.js, OpenShell CLI, cloning repos, pulling multi-GB Docker images, and building the sandbox. This 10-15 minute setup window is where most CI failures occur (apt mirror timeouts, Docker pull rate limits, npm registry hiccups).We previously had a Brev launchable (
launch-nemoclaw.shfrom OpenShell-Community) that pre-installed the foundational dependencies, but it was designed for interactive developers (code-server + VS Code theming) rather than CI. We removed it when the readiness detection was unreliable, not realizing the pre-baked setup was actually saving significant time.Approach
Create CI-focused launchables (private, under Nemoclaw CI/CD org) with startup scripts that:
sandbox-base,openshell/cluster,node:22-slim)Flavors
Success Criteria
e2e-brev.yamlworkflowbrev-e2e.test.jsupdated to use launchable with reliable readiness detectionRelated
.github/workflows/e2e-brev.yamltest/e2e/brev-e2e.test.jsscripts/brev-setup.sh