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" + } + } + } } 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 } 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