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