From 7b2fac402fc5d723a7879b8b55e3e48f24a9853c 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 962e71cd7276..11db8aaa42dd 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" @@ -140,12 +139,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 } @@ -280,6 +276,7 @@ func (cli *DockerCli) Initialize(opts *cliflags.ClientOptions, ops ...Initialize return err } } + cli.initializeFromClient() return nil } From 1ff6c4247c6444ba6429bf1ad28d4408771cf365 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 cf4f406cf920..973e80cbf8de 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 @@ -145,7 +146,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 375f685b3af84ed957cd432cd3e405fa5e1e5147 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 | 42 +++++++++++++++++++++++++++++++----------- 1 file changed, 31 insertions(+), 11 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 3416d9578e43..0da8b16ddbd3 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,13 +1,33 @@ -wrappedNode(label: 'linux && x86_64', cleanWorkspace: true) { - timeout(time: 60, unit: 'MINUTES') { - stage "Git Checkout" - checkout scm +pipeline { + agent { + label "linux && x86_64" + } - stage "Run end-to-end test suite" - sh "docker version" - sh "docker info" - sh "E2E_UNIQUE_ID=clie2e${BUILD_NUMBER} \ - IMAGE_TAG=clie2e${BUILD_NUMBER} \ - DOCKER_BUILDKIT=1 make -f docker.Makefile test-e2e" - } + options { + timeout(time: 60, unit: 'MINUTES') + } + + stages { + stage("Docker info") { + steps { + sh "docker version" + sh "docker info" + } + } + stage("E2E Tests - stable engine") { + steps { + sh "E2E_UNIQUE_ID=clie2e${BUILD_NUMBER} \ + IMAGE_TAG=clie2e${BUILD_NUMBER} \ + DOCKER_BUILDKIT=1 make -f docker.Makefile test-e2e" + } + } + stage("E2E Tests - 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" + } + } + } }