Help us shape the future of Go! Take the 2026 Go Developer Survey

e2e

command
v0.5.8 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 28, 2026 License: MIT Imports: 35 Imported by: 0

Documentation

Overview

e2e is the release gate. It installs release v from dl.mainplane.ai on real machines over ssh and checks each over the worker protocol, then takes them down to release prev and back, and past a release that does not exist. An rc is tagged stable only after it passes.

infisical run --env=dev --path=/llm -- task e2e -- <v> <prev> <port> <os>=<ssh target>...

The machines reach this one through a quick tunnel the run opens to port on loopback, as they reach an installed harness, and dial the harness on its mesh, so prev must be a release whose workers do. Linux and macOS targets need passwordless sudo. The Windows target must be an elevated login, with the operator logged in at the console. The machines are the gate's alone: a run begins by wiping every trace of mainplane from each. Each machine becomes a harness at prev in one line, with a user's data: two providers and a session that ran a command. It updates to v, which must keep that data and step the session again, and then goes. Then each becomes a harness and its worker admin at v in one line, a first install from no Dir, with every file in Dir the operator's, the harness updates to prev and back, and its uninstall takes both: a run ends with every machine clean. Each harness also runs the steps without the quickstart in docs/self-hosting.md with the lines its install printed, pointed at v: on its own machine the worker and login lines say it is already both; the next machine runs each twice, then sets an OpenAI key from OPENAI_API_KEY and starts a session on admin with mainplane new and chat. On Linux the harness's own TUI runs the quickstart first, in tmux. On Windows the harness updates to prev and back once more with TUIs left running from Program Files, which must not block either update. Each phase is this program again, as a harness at one version: its exit drops every connection, so each worker says hello to the next.

The mesh is checked on the way: each machine's interface, hosts block and Tailscale after the first phase; with no links, each worker sees only the harness; linked, as every phase does, reach between every pair by long name, mainplane status, endpoints, and an ephemeral node's view in it; workers back within restartWait of a restart; one worker removed in the last phase; and nothing of the mesh left after uninstall.

Drives too: in the first phase the Linux worker serves one to every worker (drives in the e2e func); the Linux harness gives its admin the sessions drive, read-only; and nothing of drives is left after uninstall.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL