From 54f766d240f8e8c01bcde6061c877cf6e65e7f3d Mon Sep 17 00:00:00 2001 From: Silvin Lubecki Date: Tue, 19 May 2020 18:37:24 +0200 Subject: [PATCH 1/3] Partially revert cf663b526a34f3e7911e6e60138138c2023aa844 as it breaks the version negotiation with an older docker engine. Signed-off-by: Silvin Lubecki --- cli/command/cli.go | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/cli/command/cli.go b/cli/command/cli.go index 37a45494e6..2081c8f46b 100644 --- a/cli/command/cli.go +++ b/cli/command/cli.go @@ -9,7 +9,6 @@ import ( "runtime" "strconv" "strings" - "sync" "time" "github.com/docker/cli/cli/config" @@ -136,12 +135,9 @@ func (cli *DockerCli) loadConfigFile() { cli.configFile = cliconfig.LoadDefaultConfigFile(cli.err) } -var fetchServerInfo sync.Once - // ServerInfo returns the server version details for the host this client is // connected to func (cli *DockerCli) ServerInfo() ServerInfo { - fetchServerInfo.Do(cli.initializeFromClient) return cli.serverInfo } @@ -276,6 +272,7 @@ func (cli *DockerCli) Initialize(opts *cliflags.ClientOptions, ops ...Initialize return err } } + cli.initializeFromClient() return nil } From 15d6565e49f8bdfc589ff0e0884059a9d790cdc5 Mon Sep 17 00:00:00 2001 From: Silvin Lubecki Date: Tue, 19 May 2020 18:38:19 +0200 Subject: [PATCH 2/3] Add a new Makefile variable to override DockerInDocker engine version we use to run e2e tests Signed-off-by: Silvin Lubecki --- docker.Makefile | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docker.Makefile b/docker.Makefile index 827dac5954..7ff6b02d02 100644 --- a/docker.Makefile +++ b/docker.Makefile @@ -16,12 +16,13 @@ LINTER_IMAGE_NAME = docker-cli-lint$(IMAGE_TAG) CROSS_IMAGE_NAME = docker-cli-cross$(IMAGE_TAG) VALIDATE_IMAGE_NAME = docker-cli-shell-validate$(IMAGE_TAG) E2E_IMAGE_NAME = docker-cli-e2e$(IMAGE_TAG) +E2E_ENGINE_VERSION ?= CACHE_VOLUME_NAME := docker-cli-dev-cache ifeq ($(DOCKER_CLI_GO_BUILD_CACHE),y) DOCKER_CLI_MOUNTS += -v "$(CACHE_VOLUME_NAME):/root/.cache/go-build" endif VERSION = $(shell cat VERSION) -ENVVARS = -e VERSION=$(VERSION) -e GITCOMMIT -e PLATFORM -e TESTFLAGS -e TESTDIRS -e GOOS -e GOARCH -e GOARM +ENVVARS = -e VERSION=$(VERSION) -e GITCOMMIT -e PLATFORM -e TESTFLAGS -e TESTDIRS -e GOOS -e GOARCH -e GOARM -e TEST_ENGINE_VERSION=$(E2E_ENGINE_VERSION) # build docker image (dockerfiles/Dockerfile.build) .PHONY: build_docker_image @@ -149,7 +150,7 @@ test-e2e-experimental: build_e2e_image # run experimental e2e tests .PHONY: test-e2e-non-experimental test-e2e-non-experimental: build_e2e_image # run non-experimental e2e tests - docker run --rm -v /var/run/docker.sock:/var/run/docker.sock $(ENVVARS) $(E2E_IMAGE_NAME) + docker run --rm -v /var/run/docker.sock:/var/run/docker.sock $(ENVVARS) -e TEST_ENGINE_VERSION=$(E2E_ENGINE_VERSION) $(E2E_IMAGE_NAME) .PHONY: test-e2e-connhelper-ssh test-e2e-connhelper-ssh: build_e2e_image # run experimental SSH-connection helper e2e tests From 74919d056936d351af733ec504dee3f41c978292 Mon Sep 17 00:00:00 2001 From: Silvin Lubecki Date: Tue, 19 May 2020 19:34:42 +0200 Subject: [PATCH 3/3] Run e2e tests with different engine version on Jenkins Rewrite Jenkinsfile to new declarative syntax without parallel as the e2e framework is not tailored for than (container name clash, port clash,...) Signed-off-by: Tibor Vass Signed-off-by: Silvin Lubecki --- Jenkinsfile | 66 +++++++++++++++++++++++++++++++++++------------------ 1 file changed, 44 insertions(+), 22 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index e4ea6f000c..ae2d0cbfaa 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,25 +1,47 @@ -wrappedNode(label: 'linux && x86_64', cleanWorkspace: true) { - timeout(time: 60, unit: 'MINUTES') { - stage "Git Checkout" - checkout scm +pipeline { + agent { + label "linux && x86_64" + } - stage "Docker info" - sh "docker version" - sh "docker info" + options { + timeout(time: 60, unit: 'MINUTES') + } - stage "e2e (non-experimental)" - sh "E2E_UNIQUE_ID=clie2e${BUILD_NUMBER} \ - IMAGE_TAG=clie2e${BUILD_NUMBER} \ - DOCKER_BUILDKIT=1 make -f docker.Makefile test-e2e-non-experimental" - - stage "e2e (experimental)" - sh "E2E_UNIQUE_ID=clie2e${BUILD_NUMBER} \ - IMAGE_TAG=clie2e${BUILD_NUMBER} \ - DOCKER_BUILDKIT=1 make -f docker.Makefile test-e2e-experimental" - - stage "e2e (ssh connhelper)" - sh "E2E_UNIQUE_ID=clie2e${BUILD_NUMBER} \ - IMAGE_TAG=clie2e${BUILD_NUMBER} \ - DOCKER_BUILDKIT=1 make -f docker.Makefile test-e2e-connhelper-ssh" - } + stages { + stage("Docker info") { + steps { + sh "docker version" + sh "docker info" + } + } + stage("e2e (non-experimental) - stable engine") { + steps { + sh "E2E_UNIQUE_ID=clie2e${BUILD_NUMBER} \ + IMAGE_TAG=clie2e${BUILD_NUMBER} \ + DOCKER_BUILDKIT=1 make -f docker.Makefile test-e2e-non-experimental" + } + } + stage("e2e (non-experimental) - 18.09 engine") { + steps { + sh "E2E_ENGINE_VERSION=18.09-dind \ + E2E_UNIQUE_ID=clie2e${BUILD_NUMBER} \ + IMAGE_TAG=clie2e${BUILD_NUMBER} \ + DOCKER_BUILDKIT=1 make -f docker.Makefile test-e2e-non-experimental" + } + } + stage("e2e (experimental)") { + steps { + sh "E2E_UNIQUE_ID=clie2e${BUILD_NUMBER} \ + IMAGE_TAG=clie2e${BUILD_NUMBER} \ + DOCKER_BUILDKIT=1 make -f docker.Makefile test-e2e-experimental" + } + } + stage("e2e (ssh connhelper)") { + steps { + sh "E2E_UNIQUE_ID=clie2e${BUILD_NUMBER} \ + IMAGE_TAG=clie2e${BUILD_NUMBER} \ + DOCKER_BUILDKIT=1 make -f docker.Makefile test-e2e-connhelper-ssh" + } + } + } }