From d75f0ca946d807906a7a209d13b01fe821f0b6db Mon Sep 17 00:00:00 2001 From: Tonis Tiigi Date: Fri, 25 May 2018 15:18:44 -0700 Subject: [PATCH] builder: more experimental/windows validation Signed-off-by: Tonis Tiigi Upstream-commit: 577732f655fc95396b8c2b9a45747c5c95760755 Component: engine --- .../engine/api/server/router/build/build_routes.go | 4 ++++ .../engine/builder/builder-next/executor_windows.go | 12 +++++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/components/engine/api/server/router/build/build_routes.go b/components/engine/api/server/router/build/build_routes.go index 75e4c341e8..775ed55d7e 100644 --- a/components/engine/api/server/router/build/build_routes.go +++ b/components/engine/api/server/router/build/build_routes.go @@ -244,6 +244,10 @@ func (br *buildRouter) postBuild(ctx context.Context, w http.ResponseWriter, r * return progress.NewProgressReader(in, progressOutput, r.ContentLength, "Downloading context", buildOptions.RemoteContext) } + if buildOptions.Version == types.BuilderBuildKit && !br.daemon.HasExperimental() { + return errdefs.InvalidParameter(errors.New("buildkit is only supported with experimental mode")) + } + wantAux := versions.GreaterThanOrEqualTo(version, "1.30") imgID, err := br.backend.Build(ctx, backend.BuildConfig{ diff --git a/components/engine/builder/builder-next/executor_windows.go b/components/engine/builder/builder-next/executor_windows.go index 5071f6b1a4..7b0c6e64c8 100644 --- a/components/engine/builder/builder-next/executor_windows.go +++ b/components/engine/builder/builder-next/executor_windows.go @@ -1,11 +1,21 @@ package buildkit import ( + "context" "errors" + "io" + "github.com/moby/buildkit/cache" "github.com/moby/buildkit/executor" ) func newExecutor(_ string) (executor.Executor, error) { - return nil, errors.New("buildkit executor not implemented for windows") + return &winExecutor{}, nil +} + +type winExecutor struct { +} + +func (e *winExecutor) Exec(ctx context.Context, meta executor.Meta, rootfs cache.Mountable, mounts []executor.Mount, stdin io.ReadCloser, stdout, stderr io.WriteCloser) error { + return errors.New("buildkit executor not implemented for windows") }