10 Commits
Author SHA1 Message Date
Ricardo Branco c6dffb26bd test(e2e): fix TestPullFailure's daemon-specific error assertion
The exact pull-failure wording is daemon-backend dependent (classic
graphdriver: "pull access denied for ..."; containerd image store:
"...: not found"), and OutputMatches only checks stdout while the
daemon's progress line is written to stderr. Assert the image name
appears on stderr instead, which holds regardless of backend or
wording.

Signed-off-by: Ricardo Branco <[email protected]>
2026-09-23 16:12:52 +02:00
Nicolas De Loof 7af58e3626 test(e2e): gate the e2e suite behind the build tag the docs already promise
AGENTS.md documents 'Test unit: go test ./pkg/...' and 'E2E tests:
go test -tags e2e ./pkg/e2e/'. Both statements were false: no file in
pkg/e2e carried an e2e build constraint, so the -tags flag was a no-op
and the 'unit' command actually launched the full e2e suite — requiring
a Docker daemon and the locally built binary, creating and destroying
containers, for up to 20 minutes. CI only avoided this by grepping e2e
out of the package list (Dockerfile).

Every *_test.go in pkg/e2e now carries //go:build e2e (merged with the
existing !windows constraints), and the Makefile e2e targets pass the
tag. The documented commands become true:
- go test ./pkg/...          -> pkg/e2e reports [no test files]
- go test -tags e2e ./pkg/e2e -> runs the suite

AGENTS.md now also states the daemon/binary prerequisites explicitly.

Part of #14074 (A: the code misdescribes its own structure).

Signed-off-by: Nicolas De Loof <[email protected]>
2026-08-27 11:02:07 +02:00
Nicolas De Loof 54caa0775c test(e2e): pull and network scenarios
- pull: the CLI's Pulled/Skipped report is the observable, so the five
  scenarios (always-pull, present-locally, build-only, failure,
  --ignore-pull-failures) legitimately match output; models are inline
  and the whole compose-pull fixture tree — including the orphaned
  duplicate-images directory no test referenced — is removed.
- networks: aliases, links, ipam, network_mode: service, subnet change,
  mac_address and interface_name become scenarios. The subnet-change
  scenario locks what actually happens: the network is replaced but the
  container is reconnected, not recreated (NotRecreated), which the
  legacy test never distinguished. TestNetworks (fixed host ports,
  HTTP fixture services) and TestNetworkRecreate (OR-shaped output
  assertion) stay legacy.

Signed-off-by: Nicolas De Loof <[email protected]>
2026-08-18 16:49:56 +02:00
Nicolas De Loof d70bb8cf5e distinguish event (short) status text and details
Signed-off-by: Nicolas De Loof <[email protected]>
2025-11-04 10:18:55 +01:00
Nicolas De Loof a8933c91e7 stop progress UI during build to prevent interference with buildkit Display
Signed-off-by: Nicolas De Loof <[email protected]>
2025-10-29 10:11:30 +01:00
Nicolas De Loof fd4f2f99cf register TTYWritter as an Event Processor
Signed-off-by: Nicolas De Loof <[email protected]>
2025-10-29 10:11:30 +01:00
Nicolas De Loof 23351ece81 remove exit code per error type used by legacy metrics system
Signed-off-by: Nicolas De Loof <[email protected]>
2025-01-28 10:26:41 +01:00
Sebastiaan van Stijn 446e00520c format code with gofumpt
Format the code  with gofumpt to prevent my IDE from reformatting
every time I open a file. gofumpt provides a superset of gofmt,
so should not impact users that are not using gofumpt.

Signed-off-by: Sebastiaan van Stijn <[email protected]>
2024-12-17 16:50:14 +01:00
Nicolas De Loof c1ce53c972 fix regression running pull --ignore-pull-failures
Signed-off-by: Nicolas De Loof <[email protected]>
2022-12-19 11:56:03 +01:00
Laura Brehm 235734823e Pull image regardless of whether it exists locally if tag=latest
... and pull policy is `missing` or `if_not_present`

Signed-off-by: Laura Brehm <[email protected]>
2022-08-23 16:57:40 +02:00