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

e2e/

directory
v1.24.0 Latest Latest
Warning

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

Go to latest
Published: Oct 19, 2026 License: MPL-2.0

README

E2E tests

End-to-end tests for the Devsy CLI, written with Ginkgo. Run all commands below from the repository root.

Prerequisites

  • Go and mise
  • Docker, for the Docker-based suites
  • kind v0.33.0 or newer, for Kubernetes suites

The mise run tasks run Ginkgo through go tool ginkgo, which uses the version pinned in go.mod. To install a ginkgo binary on your PATH, run mise run cli:test:e2e:ginkgo:install.

Build

mise run cli:test:e2e:build builds Devsy and copies the Linux amd64 and host binaries into e2e/bin/. The run tasks below do this automatically.

Run

# all suites
mise run cli:test:e2e

# suites selected by label
mise run cli:test:e2e:suite up-docker-compose

# specs selected by name pattern
mise run cli:test:e2e:focus "pattern"

cli:test:e2e:act:focus runs a focused pattern through act.

Kubernetes tests

Specs labeled up-provider-kubernetes or build need a kind cluster. The setup task checks the kind version and creates a cluster from kindest/node:v1.36.4@sha256:099e049362a1526b2db71494e1947aae99bd16290d7c895f2b7ea312e3cbfaed:

mise run cli:test:e2e:kind:setup

Remove the cluster afterwards:

mise run cli:test:e2e:kind:teardown
CI helpers

The Windows Transport Tests job runs native transport and runtime-helper unit tests independently of CLI artifact builds. After that job and the builds pass, the reusable docker-buildkit-windows.yml workflow runs the docker-internal-buildkit regression specs. It provisions Docker Engine in WSL2, reached over SSH, with devsy-ci docker-wsl setup (e2e/cmd/devsy-ci). The runtime logic lives in e2e/framework:

Package Responsibility
runenv Subprocess, filesystem, clock, network and download seams, plus the typed StageError.
dockerwsl Provisions and tears down dockerd in WSL2, reached over SSH, for Windows runners.

Their unit tests need no Docker, WSL or network:

go test ./e2e/framework/runenv/... ./e2e/framework/dockerwsl ./e2e/cmd/devsy-ci

Ginkgo executes the specs directly. devsy-ci check-report checks its JSON report: all six BuildKit specs must pass on their first attempt, with no selected skips, dry run or programmatic focus. Teardown runs on success and failure, before the report and non-secret diagnostics are uploaded.

Directories

Path Synopsis
cmd
devsy-ci command
Command devsy-ci provisions and verifies the runtimes the E2E suite runs on.
Command devsy-ci provisions and verifies the runtimes the E2E suite runs on.
dockerwsl
Package dockerwsl provisions and tears down the Docker daemon the Windows E2E runners use: dockerd inside WSL2, reached from the host over SSH.
Package dockerwsl provisions and tears down the Docker daemon the Windows E2E runners use: dockerd inside WSL2, reached from the host over SSH.
registryfixture
Package registryfixture owns the bounded Linux registry/proxy and helper fixtures used by native provider-consumer tests.
Package registryfixture owns the bounded Linux registry/proxy and helper fixtures used by native provider-consumer tests.
runenv
Package runenv is the execution environment shared by the E2E CI helpers.
Package runenv is the execution environment shared by the E2E CI helpers.
runenv/runenvtest
Package runenvtest provides in-memory fakes of the runenv seams, assembled into a Rig, for testing code written against runenv.Dependencies.
Package runenvtest provides in-memory fakes of the runenv seams, assembled into a Rig, for testing code written against runenv.Dependencies.
tests
ci
dockerbuildkit
Package dockerbuildkit covers internal BuildKit against the provider-selected daemon on Windows, where the process environment points at a dead named pipe.
Package dockerbuildkit covers internal BuildKit against the provider-selected daemon on Windows, where the process environment points at a dead named pipe.
ide
mcp
ssh
up

Jump to

Keyboard shortcuts

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