Skip to content
Docs Validation

Runtimes

Pluggable execution backends so validate looks the same on every machine.

gridtrue validate does not care whether you prefer Docker, Podman, or a native toolchain. It looks at .gridtrue/validate.yaml and picks the runtime the manifest asks for. All runtimes produce the same attestation shape.

container
Docker / Podman / nerdctl / Colima. The default. Image digests are pinned; no :latest ever reaches the ledger.
native
Calls into a toolchain in ~/.gridtrue/sdk. Used for fast paths where a container round-trip is wasted time (go test, pnpm test).
vm
Vagrant + libvirt or QEMU. Needed for workloads that require a kernel of their own (systemd tests, kernel modules).

Picking a runtime

If the step…Use
Runs tests of a single language in under 30snative — avoid the container startup tax
Needs system packages, services, or a clean filesystemcontainer — with a pinned image digest
Needs a real kernel, systemd, or privileged syscallsvm — slow but honest
Runs a heterogeneous matrix (multiple OSes / versions)container, one step per matrix entry

SDK Manager

For the native runtime, the CLI ships a built-in SDK Manager — no Homebrew / apt-get / chocolatey required. It installs pinned toolchains into ~/.gridtrue/sdk so your system Go / Node / Python / Java / Rust is never touched.

bash
gridtrue sdk install go@1.23.3
gridtrue sdk install node@22.11.0
gridtrue sdk install python@3.12.7
gridtrue sdk install rust@1.82.0

gridtrue sdk list       # show installed versions
gridtrue sdk gc         # remove unused versions