151 Commits

Author SHA1 Message Date
Paweł Gronowski
a25907b485 modernize: Prefer strings.SplitSeq instead of Split
Avoids extra allocations. Added in Go 1.24.

Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
2025-12-15 18:56:33 +01:00
Derek McGowan
d210449d85 Natively support GRPC on the docker socket
Use the GRPC server when requests are for the grpc content type.

Signed-off-by: Derek McGowan <derek@mcg.dev>
2025-12-09 21:03:04 +01:00
Sebastiaan van Stijn
3e4a3cb03e integration: skip TestBuildWithHugeFile
We've seen various failures recently where GitHub actions runners are
running out of space. Skip this test for now.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2025-11-14 17:23:05 +01:00
Sebastiaan van Stijn
f76f1fc013 client: Client.ImageSave: close reader on context cancellation
Use a cancelReadCloser to automatically close the reader when the context
is cancelled. Consumers are still recommended to manually close the reader,
but the cancelReadCloser makes the Close idempotent.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2025-11-06 00:10:59 +01:00
Sebastiaan van Stijn
849239cedf client: Client.ImageLoad: close reader on context cancellation
Use a cancelReadCloser to automatically close the reader when the context
is cancelled. Consumers are still recommended to manually close the reader,
but the cancelReadCloser makes the Close idempotent.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2025-11-06 00:07:14 +01:00
Sebastiaan van Stijn
97a1d44f05 Merge pull request #51342 from thaJeztah/client_platforms
client: prepare option-structs for multiple platforms
2025-10-30 22:18:58 +01:00
Paweł Gronowski
5a871b8299 Merge pull request #51156 from corhere/client-pkg-jsonmessage
client/pkg/jsonmessage: refactor in terms of `api/types/jsonstream`
2025-10-30 19:33:21 +01:00
Sebastiaan van Stijn
137adde33d client: prepare option-structs for multiple platforms
Some methods currently support a single platform only, but we may
be able to support multiple platforms.

This patch prepares the option-structs for multi-platform support,
but (for now) returning an error if multiple options are provided.

We need a similar check on the daemon-side, but still need to check
on the client, as older daemons will ignore multiple platforms, which
may be unexpected.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2025-10-30 18:04:34 +01:00
Austin Vazquez
e46058cbae client: refactor Events, Info, RegistryLogin
Co-authored-by: Claude <noreply@anthropic.com>
Signed-off-by: Austin Vazquez <austin.vazquez@docker.com>
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2025-10-29 09:36:23 +01:00
Austin Vazquez
c5ddef1122 client: refactor ContainerList to wrap result
Signed-off-by: Austin Vazquez <austin.vazquez@docker.com>
2025-10-28 18:52:52 -05:00
Cory Snider
bbaeb9036f client/pkg/jsonmessage: use api message def'ns
Signed-off-by: Cory Snider <csnider@mirantis.com>
2025-10-28 17:10:34 -04:00
Sebastiaan van Stijn
c246639baa client: rename ImageRemoveResult.Deleted to ImageRemoveResult.Items
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2025-10-24 14:07:10 +02:00
Paweł Gronowski
347693a580 client/image_remove&search: Wrap options and result
Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
2025-10-21 19:37:18 -05:00
Paweł Gronowski
2d69edd28a client/image_(inspect,history,load,save): Wrap return values
Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2025-10-21 14:23:38 +02:00
Sebastiaan van Stijn
d1a720cb15 Merge pull request #51042 from akerouanton/userns-remapping-disable-snapshotter
daemon/command: disable c8d snapshotter when userns remapping enabled
2025-10-17 17:21:31 +02:00
Albin Kerouanton
e1722eb8d8 daemon/command: disable c8d snapshotter when userns remapping enabled
Buildkit fails when userns remapping is enabled and c8d snapshotter is
used. As a temporary workaround, disable c8d snapshotter when userns
remapping is enabled. This will need a proper fix in the future.

Signed-off-by: Albin Kerouanton <albinker@gmail.com>
2025-10-14 10:14:35 +02:00
Cory Snider
7ea066c8d1 client: add Filters type
Add a new type to use for building filter predicates for API requests,
replacing "./api/types/filters".Args in the client. Remove the now
unused api/types/filters package.

Signed-off-by: Cory Snider <csnider@mirantis.com>
2025-10-08 12:06:31 -04:00
Sebastiaan van Stijn
d3e45f8743 testutil: move back to internal
This package was originally internal, but was moved out when BuildKit
used it for its integration tests. That's no longer the case, so we
can make it internal again.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2025-09-08 10:08:30 +02:00
Sebastiaan van Stijn
2d1af4e4e4 api/types/build: move build options to client and backend
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2025-09-05 15:57:05 +02:00
Sebastiaan van Stijn
4d20b6fe56 api/types/container: move container options to client
Move the option-types to the client and in some cases create a
copy for the backend. These types are used to construct query-
args, and not marshaled to JSON, and can be replaced with functional
options in the client.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2025-09-04 20:09:55 +02:00
Austin Vazquez
853aed171b api/types/image: move image option types to client
Signed-off-by: Austin Vazquez <austin.vazquez@docker.com>
2025-08-26 15:38:44 -05:00
Sebastiaan van Stijn
39d4dbea9c Dockerfile: update debian frozen image to trixie-slim
docker buildx imagetools inspect docker.io/library/debian:trixie-slim
    Name:      docker.io/library/debian:trixie-slim
    MediaType: application/vnd.oci.image.index.v1+json
    Digest:    sha256:c85a2732e97694ea77237c61304b3bb410e0e961dd6ee945997a06c788c545bb

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2025-08-21 23:35:26 +02:00
Austin Vazquez
eb9774cbf9 client: rename ListOptions type to EventsListOptions
Signed-off-by: Austin Vazquez <austin.vazquez@docker.com>
2025-08-20 08:31:04 -05:00
Austin Vazquez
d73dd4990c api/types/events: move ListOptions type to client
Signed-off-by: Austin Vazquez <austin.vazquez@docker.com>
2025-08-20 08:29:20 -05:00
Derek McGowan
f74e5d48b3 Create github.com/moby/moby/v2 module
Signed-off-by: Derek McGowan <derek@mcg.dev>
2025-07-31 10:13:29 -07:00
Derek McGowan
0d8ca8eefe Move pkg/jsonmessage to client/pkg/jsonmessage
Signed-off-by: Derek McGowan <derek@mcg.dev>
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2025-07-30 14:22:31 +02:00
Derek McGowan
1da417980c Move api/stdcopy to api/pkg/stdcopy
Signed-off-by: Derek McGowan <derek@mcg.dev>
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2025-07-30 14:22:30 +02:00
Austin Vazquez
29ab09d5d1 Merge pull request #50469 from thaJeztah/integration_noshadow
integration: rename vars that shadowed import
2025-07-21 15:05:45 -07:00
Sebastiaan van Stijn
024414b47e integration: rename vars that shadowed import
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2025-07-21 22:23:58 +02:00
Sebastiaan van Stijn
20d594fb79 deprecate pkg/stdcopy, move to api/stdcopy
The stdcopy package is used to produce and read multiplexed streams for
"attach" and "logs". It is used both by the API server (to produce), and
the client (to read / de-multiplex).

Move it to the api package, so that it can be included in the api module.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2025-07-21 21:41:39 +02:00
Derek McGowan
c47afd41c8 Create github.com/moby/moby/client module
Signed-off-by: Derek McGowan <derek@mcg.dev>
2025-07-21 09:30:26 -07:00
Derek McGowan
afd6487b2e Create github.com/moby/moby/api module
Signed-off-by: Derek McGowan <derek@mcg.dev>
2025-07-21 09:30:05 -07:00
Derek McGowan
aae26b80fe Remove client buildkit dep
Remove unused package from client which brings in buildkit dep

Signed-off-by: Derek McGowan <derek@mcg.dev>
2025-07-02 16:08:15 -07:00
Matthieu MOREL
381d9d0723 fix use-errors-new from revive
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
2025-06-26 12:07:38 +00:00
Matthieu MOREL
6d737371b8 fix comparison rule from errorlint
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>

Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
2025-06-13 08:26:56 +00:00
Matthieu MOREL
19f5ac3c81 fix initClause from go-critic
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
2025-06-07 09:57:59 +02:00
Sebastiaan van Stijn
4970333621 integration: remove // import comments
These comments were added to enforce using the correct import path for
our packages ("github.com/docker/docker", not "github.com/moby/moby").
However, when working in go module mode (not GOPATH / vendor), they have
no effect, so their impact is limited.

Remove these imports in preparation of migrating our code to become an
actual go module.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2025-05-30 15:59:14 +02:00
Matthieu MOREL
14852fcd82 integration: replace uses of errdefs package
Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
2025-05-28 05:39:50 +00:00
Sebastiaan van Stijn
3d1e4d9002 api/types: move build-related types to api/types/build
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2025-05-19 09:30:27 +02:00
Jonathan A. Sternberg
61646c8bfc containerd: remove unleaseSnapshotsFromDeletedConfigs
Removes workaround for https://github.com/moby/buildkit/issues/3797 now
that the underlying issue is fixed.

Signed-off-by: Jonathan A. Sternberg <jonathan.sternberg@docker.com>
2025-05-14 09:20:22 -05:00
Sebastiaan van Stijn
ea37a1f040 integration/build: use t.TempDir
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2025-05-12 12:09:39 +02:00
Paweł Gronowski
af0232d52b integration/build: Unskip TestBuildEmitsImageCreateEvent for c8d
The issue is now fixed.

Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
2025-04-24 13:38:11 +02:00
Paweł Gronowski
b9319f64ed client: Change ImageSave to use functional options
Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
2025-02-14 14:25:39 +01:00
Paweł Gronowski
ae4c688fd8 client: Change ImageLoad to use functional options
Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
2025-02-14 14:25:37 +01:00
Paweł Gronowski
85808a6abf client: Change ImageHistory to use functional options
Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
2025-02-14 13:55:30 +01:00
Paweł Gronowski
a096045678 all: Replace deprecated ImageInspectWithRaw usage
Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
2025-02-06 13:31:48 +01:00
Sebastiaan van Stijn
53a9127349 integration/build: make TestBuildEmitsImageCreateEvent less noisy
This test by default was outputing the build-progress output, and printing
a log for every event received, which made the test output rather noisy;

    === RUN   TestBuildEmitsImageCreateEvent
    === RUN   TestBuildEmitsImageCreateEvent/v1
        build_test.go:765: {"stream":"Step 1/2 : FROM busybox"}

            {"stream":"\n"}

            {"stream":" ---\u003e 19d689bc58fd\n"}

            {"stream":"Step 2/2 : RUN echo hello \u003e /hello"}

            {"stream":"\n"}

            {"stream":" ---\u003e Running in 538c10d10d69\n"}

            {"stream":" ---\u003e ca6d3b3e2dea\n"}

            {"aux":{"ID":"sha256:ca6d3b3e2dea645eeddd838da65fd06986da1392b6091dd3d3b89f239dc44f57"}}

            {"stream":"Successfully built ca6d3b3e2dea\n"}

        build_test.go:776: Got event type: container action: create
        build_test.go:776: Got event type: container action: attach
        build_test.go:776: Got event type: network action: connect
        build_test.go:776: Got event type: container action: start
        build_test.go:776: Got event type: network action: disconnect
        build_test.go:776: Got event type: container action: die
        build_test.go:776: Got event type: image action: create
    === RUN   TestBuildEmitsImageCreateEvent/v2
        build_test.go:765: {"id":"moby.buildkit.trace","aux":"Cm8KR3NoYTI1NjowZWViNmZmNTg0ZDJhODEwODhjMTJlNmVkODMxZDcyNWVhMjZmNTg2NjcyNDQ0MzU3NTNkNmZiOGVhMDBiNGFiGiRbaW50ZXJuYWxdIGxvYWQgcmVtb3RlIGJ1aWxkIGNvbnRleHQ="}

            {"id":"moby.buildkit.trace","aux":"CnwKR3NoYTI1NjowZWViNmZmNTg0ZDJhODEwODhjMTJlNmVkODMxZDcyNWVhMjZmNTg2NjcyNDQ0MzU3NTNkNmZiOGVhMDBiNGFiGiRbaW50ZXJuYWxdIGxvYWQgcmVtb3RlIGJ1aWxkIGNvbnRleHQqCwj+tIC7BhCxkpNl"}

            {"id":"moby.buildkit.trace","aux":"CokBCkdzaGEyNTY6MGVlYjZmZjU4NGQyYTgxMDg4YzEyZTZlZDgzMWQ3MjVlYTI2ZjU4NjY3MjQ0NDM1NzUzZDZmYjhlYTAwYjRhYhokW2ludGVybmFsXSBsb2FkIHJlbW90ZSBidWlsZCBjb250ZXh0KgsI/rSAuwYQsZKTZTILCP60gLsGELmTrHg="}

            {"id":"moby.buildkit.trace","aux":"CokBCkdzaGEyNTY6MGVlYjZmZjU4NGQyYTgxMDg4YzEyZTZlZDgzMWQ3MjVlYTI2ZjU4NjY3MjQ0NDM1NzUzZDZmYjhlYTAwYjRhYhokW2ludGVybmFsXSBsb2FkIHJlbW90ZSBidWlsZCBjb250ZXh0KgsI/rSAuwYQpZC3eDILCP60gLsGELbLuXg="}

            {"id":"moby.buildkit.trace","aux":"CqMBCkdzaGEyNTY6MzFjMGEyZDk1N2Q2MTQ2ZjE0NDEyNTM4YTc2YTAxNjhlOWQ5NzY2ZjA0ZjNmMDM4OGQ1YzdjNjQ1ODQ0NDQ3YxJHc2hhMjU2OjBlZWI2ZmY1ODRkMmE4MTA4OGMxMmU2ZWQ4MzFkNzI1ZWEyNmY1ODY2NzI0NDQzNTc1M2Q2ZmI4ZWEwMGI0YWIaD2NvcHkgL2NvbnRleHQgLw=="}

            {"id":"moby.buildkit.trace","aux":"CrABCkdzaGEyNTY6MzFjMGEyZDk1N2Q2MTQ2ZjE0NDEyNTM4YTc2YTAxNjhlOWQ5NzY2ZjA0ZjNmMDM4OGQ1YzdjNjQ1ODQ0NDQ3YxJHc2hhMjU2OjBlZWI2ZmY1ODRkMmE4MTA4OGMxMmU2ZWQ4MzFkNzI1ZWEyNmY1ODY2NzI0NDQzNTc1M2Q2ZmI4ZWEwMGI0YWIaD2NvcHkgL2NvbnRleHQgLyoLCP60gLsGEIyYn3s="}

            {"id":"moby.buildkit.trace","aux":"Cr4BCkdzaGEyNTY6MzFjMGEyZDk1N2Q2MTQ2ZjE0NDEyNTM4YTc2YTAxNjhlOWQ5NzY2ZjA0ZjNmMDM4OGQ1YzdjNjQ1ODQ0NDQ3YxJHc2hhMjU2OjBlZWI2ZmY1ODRkMmE4MTA4OGMxMmU2ZWQ4MzFkNzI1ZWEyNmY1ODY2NzI0NDQzNTc1M2Q2ZmI4ZWEwMGI0YWIaD2NvcHkgL2NvbnRleHQgLyoLCP60gLsGEIyYn3syDAj+tIC7BhCrvMGHAQ=="}

            {"id":"moby.buildkit.trace","aux":"CpYBCkdzaGEyNTY6OTQxZDA2ZjIwMTljOWJmN2FjM2MyZjc5MThhNDQ3ZTU5ZmRkNTEwM2IzMDg0NGRhZmQ5OGFlODE3NjRjYzk4ZBo9W2ludGVybmFsXSBsb2FkIG1ldGFkYXRhIGZvciBkb2NrZXIuaW8vbGlicmFyeS9idXN5Ym94OmxhdGVzdCoMCP60gLsGEPzY+IgB"}

            {"id":"moby.buildkit.trace","aux":"CqQBCkdzaGEyNTY6OTQxZDA2ZjIwMTljOWJmN2FjM2MyZjc5MThhNDQ3ZTU5ZmRkNTEwM2IzMDg0NGRhZmQ5OGFlODE3NjRjYzk4ZBo9W2ludGVybmFsXSBsb2FkIG1ldGFkYXRhIGZvciBkb2NrZXIuaW8vbGlicmFyeS9idXN5Ym94OmxhdGVzdCoMCP60gLsGEPzY+IgBMgwI/rSAuwYQk9mDiQE="}

            {"id":"moby.buildkit.trace","aux":"CrEBCkdzaGEyNTY6ZTNmZGU0ZDc3MmYxZjUyMGVlMzllNzA3YTcyNGNhNjRiN2VhM2IyMGYwOTc2ZDJmN2NiNDBkY2Q5MWU2NTk1YRJHc2hhMjU2OjIyNzAwYzkxMGNmY2I3MjNjZGYyZmNjMGYxNzQ1MjAzMDQxNzk1NmY0ZDhiZjEzZjZkZmRkZWM3NjgxZDcxODAaHVsyLzJdIFJVTiBlY2hvIGhlbGxvID4gL2hlbGxvCnYKR3NoYTI1NjoyMjcwMGM5MTBjZmNiNzIzY2RmMmZjYzBmMTc0NTIwMzA0MTc5NTZmNGQ4YmYxM2Y2ZGZkZGVjNzY4MWQ3MTgwGitbMS8yXSBGUk9NIGRvY2tlci5pby9saWJyYXJ5L2J1c3lib3g6bGF0ZXN0"}

            {"id":"moby.buildkit.trace","aux":"CoQBCkdzaGEyNTY6MjI3MDBjOTEwY2ZjYjcyM2NkZjJmY2MwZjE3NDUyMDMwNDE3OTU2ZjRkOGJmMTNmNmRmZGRlYzc2ODFkNzE4MBorWzEvMl0gRlJPTSBkb2NrZXIuaW8vbGlicmFyeS9idXN5Ym94OmxhdGVzdCoMCP60gLsGEKKYuYkB"}

            {"id":"moby.buildkit.trace","aux":"CpIBCkdzaGEyNTY6MjI3MDBjOTEwY2ZjYjcyM2NkZjJmY2MwZjE3NDUyMDMwNDE3OTU2ZjRkOGJmMTNmNmRmZGRlYzc2ODFkNzE4MBorWzEvMl0gRlJPTSBkb2NrZXIuaW8vbGlicmFyeS9idXN5Ym94OmxhdGVzdCoMCP60gLsGEKKYuYkBMgwI/rSAuwYQhurIiQE="}

            {"id":"moby.buildkit.trace","aux":"CoQBCkdzaGEyNTY6MjI3MDBjOTEwY2ZjYjcyM2NkZjJmY2MwZjE3NDUyMDMwNDE3OTU2ZjRkOGJmMTNmNmRmZGRlYzc2ODFkNzE4MBorWzEvMl0gRlJPTSBkb2NrZXIuaW8vbGlicmFyeS9idXN5Ym94OmxhdGVzdCoMCP60gLsGEPGI0YkB"}

            {"id":"moby.buildkit.trace","aux":"CpIBCkdzaGEyNTY6MjI3MDBjOTEwY2ZjYjcyM2NkZjJmY2MwZjE3NDUyMDMwNDE3OTU2ZjRkOGJmMTNmNmRmZGRlYzc2ODFkNzE4MBorWzEvMl0gRlJPTSBkb2NrZXIuaW8vbGlicmFyeS9idXN5Ym94OmxhdGVzdCoMCP60gLsGEPGI0YkBMgwI/rSAuwYQv9CgkAE="}

            {"id":"moby.buildkit.trace","aux":"Cr8BCkdzaGEyNTY6ZTNmZGU0ZDc3MmYxZjUyMGVlMzllNzA3YTcyNGNhNjRiN2VhM2IyMGYwOTc2ZDJmN2NiNDBkY2Q5MWU2NTk1YRJHc2hhMjU2OjIyNzAwYzkxMGNmY2I3MjNjZGYyZmNjMGYxNzQ1MjAzMDQxNzk1NmY0ZDhiZjEzZjZkZmRkZWM3NjgxZDcxODAaHVsyLzJdIFJVTiBlY2hvIGhlbGxvID4gL2hlbGxvKgwI/rSAuwYQwvqtkgE="}

            {"id":"moby.buildkit.trace","aux":"Cs0BCkdzaGEyNTY6ZTNmZGU0ZDc3MmYxZjUyMGVlMzllNzA3YTcyNGNhNjRiN2VhM2IyMGYwOTc2ZDJmN2NiNDBkY2Q5MWU2NTk1YRJHc2hhMjU2OjIyNzAwYzkxMGNmY2I3MjNjZGYyZmNjMGYxNzQ1MjAzMDQxNzk1NmY0ZDhiZjEzZjZkZmRkZWM3NjgxZDcxODAaHVsyLzJdIFJVTiBlY2hvIGhlbGxvID4gL2hlbGxvKgwI/rSAuwYQwvqtkgEyDAj+tIC7BhDshP7sAQ=="}

            {"id":"moby.buildkit.trace","aux":"CmsKR3NoYTI1NjpmMWM5ZDIzNTNhOWRlZjgwOTI2OGRmMjhhMjU4YzExNTA2ODcxMWE0ZmFiYzM1MjNkOGJhZDIxOTgyMDc3MjFjGhJleHBvcnRpbmcgdG8gaW1hZ2UqDAj+tIC7BhC6trLuARJ3ChBleHBvcnRpbmcgbGF5ZXJzEkdzaGEyNTY6ZjFjOWQyMzUzYTlkZWY4MDkyNjhkZjI4YTI1OGMxMTUwNjg3MTFhNGZhYmMzNTIzZDhiYWQyMTk4MjA3NzIxYzIMCP60gLsGEIe6s+4BOgwI/rSAuwYQq7az7gE="}

            {"id":"moby.buildkit.trace","aux":"EoUBChBleHBvcnRpbmcgbGF5ZXJzEkdzaGEyNTY6ZjFjOWQyMzUzYTlkZWY4MDkyNjhkZjI4YTI1OGMxMTUwNjg3MTFhNGZhYmMzNTIzZDhiYWQyMTk4MjA3NzIxYzIMCP60gLsGEOz5ovsBOgwI/rSAuwYQq7az7gFCDAj+tIC7BhDV8qL7AQ=="}

            {"id":"moby.buildkit.trace","aux":"ErwBClV3cml0aW5nIGltYWdlIHNoYTI1Njo5YjIzODY3ODkzZGMyZDVlM2UxNDBhYjBlY2Y1ZGI4MzlhYjA0YzQ0NjRiNjMyZTQ5ZTg3YzBmOThkZDEyYzFhEkdzaGEyNTY6ZjFjOWQyMzUzYTlkZWY4MDkyNjhkZjI4YTI1OGMxMTUwNjg3MTFhNGZhYmMzNTIzZDhiYWQyMTk4MjA3NzIxYzIMCP60gLsGEPHIq/sBOgwI/rSAuwYQ38Wr+wE="}

            {"id":"moby.buildkit.trace","aux":"EsoBClV3cml0aW5nIGltYWdlIHNoYTI1Njo5YjIzODY3ODkzZGMyZDVlM2UxNDBhYjBlY2Y1ZGI4MzlhYjA0YzQ0NjRiNjMyZTQ5ZTg3YzBmOThkZDEyYzFhEkdzaGEyNTY6ZjFjOWQyMzUzYTlkZWY4MDkyNjhkZjI4YTI1OGMxMTUwNjg3MTFhNGZhYmMzNTIzZDhiYWQyMTk4MjA3NzIxYzIMCP60gLsGEOuB7vwBOgwI/rSAuwYQ38Wr+wFCDAj+tIC7BhCT/+38AQ=="}

            {"id":"moby.buildkit.trace","aux":"CnkKR3NoYTI1NjpmMWM5ZDIzNTNhOWRlZjgwOTI2OGRmMjhhMjU4YzExNTA2ODcxMWE0ZmFiYzM1MjNkOGJhZDIxOTgyMDc3MjFjGhJleHBvcnRpbmcgdG8gaW1hZ2UqDAj+tIC7BhC6trLuATIMCP60gLsGEJG6x4QC"}

            {"id":"moby.image.id","aux":{"ID":"sha256:9b23867893dc2d5e3e140ab0ecf5db839ab04c4464b632e49e87c0f98dd12c1a"}}

        build_test.go:776: Got event type: image action: create

This patch preserves both, but only prints them if the test failed to
help debugging failures.

With this patch:

On success:

    === RUN   TestBuildEmitsImageCreateEvent
    === RUN   TestBuildEmitsImageCreateEvent/v1
    === RUN   TestBuildEmitsImageCreateEvent/v2
    --- PASS: TestBuildEmitsImageCreateEvent (1.53s)
        --- PASS: TestBuildEmitsImageCreateEvent/v1 (0.48s)
        --- PASS: TestBuildEmitsImageCreateEvent/v2 (1.03s)
    PASS

When failing:

    === Failed
    === FAIL: arm64.integration.build TestBuildEmitsImageCreateEvent/v1 (0.97s)
        build_test.go:789: assertion failed: 1 (int) != 0 (imageCreateEvts int)
        build_test.go:790: build-logs:
            {"stream":"Step 1/2 : FROM busybox"}
            {"stream":"\n"}
            {"stream":" ---\u003e 19d689bc58fd\n"}
            {"stream":"Step 2/2 : RUN echo hello \u003e /hello"}
            {"stream":"\n"}
            {"stream":" ---\u003e Running in 119e771bcb1a\n"}
            {"stream":" ---\u003e 289982143d91\n"}
            {"aux":{"ID":"sha256:289982143d912b1c11d95dddfb59640c175fb29a9a00f0223a1ad18972b6df74"}}
            {"stream":"Successfully built 289982143d91\n"}

        build_test.go:791: events received:
            type: container, action: create
            type: container, action: attach
            type: network, action: connect
            type: container, action: start
            type: network, action: disconnect
            type: container, action: die
            type: image, action: create
        --- FAIL: TestBuildEmitsImageCreateEvent/v1 (0.97s)

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2024-12-16 13:43:05 +01:00
Paweł Gronowski
899360b649 integration/build_traces: Create own tracer provider
Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
2024-12-12 18:32:05 +01:00
Akihiro Suda
fb6e650ab9 integration: add wait
Cherry-picked several WIP commits from
b0a592798f/

Originally-authored-by: Rodrigo Campos <rodrigoca@microsoft.com>
Co-Authored-by: Kir Kolyshkin <kolyshkin@gmail.com>
Signed-off-by: Akihiro Suda <akihiro.suda.cz@hco.ntt.co.jp>
Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com>
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2024-11-27 15:52:49 +01:00
Aleksa Sarai
caae3c051d tests: migrate to assert.ErrorContains when possible
If we have an error type that we're checking a substring against, we
should really be checking using ErrorContains to indicate the right
semantics to assert.

Mostly done using these transforms:

  find . -type f -name "*_test.go" | \
    xargs gofmt -w -r 'assert.Assert(t, is.ErrorContains(e, s)) -> assert.ErrorContains(t, e, s)'
  find . -type f -name "*_test.go" | \
    xargs gofmt -w -r 'assert.Assert(t, is.Contains(err.Error(), s)) -> assert.ErrorContains(t, err, s)'
  find . -type f -name "*_test.go" | \
    xargs gofmt -w -r 'assert.Check(t, is.Contains(err.Error(), s)) -> assert.Check(t, is.ErrorContains(err, s))'

As well as some small fixups to helpers that were doing
strings.Contains explicitly.

Signed-off-by: Aleksa Sarai <cyphar@cyphar.com>
2024-11-22 23:59:21 +11:00