Pārlūkot izejas kodu

Merge pull request #44556 from thaJeztah/22.06_backport_ci_fixes

[22.06 backport] assorted CI and packaging fixes
Sebastiaan van Stijn 2 gadi atpakaļ
vecāks
revīzija
44eb640a1b
7 mainītis faili ar 39 papildinājumiem un 80 dzēšanām
  1. 1 4
      .dockerignore
  2. 2 0
      .github/workflows/.windows.yml
  3. 2 1
      .github/workflows/buildkit.yml
  4. 5 2
      .github/workflows/test.yml
  5. 21 18
      .gitignore
  6. 2 16
      Jenkinsfile
  7. 6 39
      Makefile

+ 1 - 4
.dockerignore

@@ -1,7 +1,4 @@
 .git
-.go-pkg-cache
-.gopath
-bundles
+bundles/
 cli/winresources/**/winres.json
 cli/winresources/**/*.syso
-vendor/pkg

+ 2 - 0
.github/workflows/.windows.yml

@@ -105,6 +105,7 @@ jobs:
 
   unit-test:
     runs-on: ${{ inputs.os }}
+    timeout-minutes: 120
     env:
       GOPATH: ${{ github.workspace }}\go
       GOBIN: ${{ github.workspace }}\go\bin
@@ -239,6 +240,7 @@ jobs:
 
   integration-test:
     runs-on: ${{ inputs.os }}
+    timeout-minutes: 120
     needs:
       - build
       - integration-test-prepare

+ 2 - 1
.github/workflows/buildkit.yml

@@ -45,9 +45,10 @@ jobs:
           retention-days: 1
 
   test:
+    runs-on: ubuntu-20.04
+    timeout-minutes: 120
     needs:
       - build
-    runs-on: ubuntu-20.04
     strategy:
       fail-fast: false
       matrix:

+ 5 - 2
.github/workflows/test.yml

@@ -19,8 +19,6 @@ env:
   GOTESTLIST_VERSION: v0.2.0
   TESTSTAT_VERSION: v0.1.3
   ITG_CLI_MATRIX_SIZE: 6
-  BUILDX: docker buildx
-  USE_BUILDX: 1
   DOCKER_EXPERIMENTAL: 1
   DOCKER_GRAPHDRIVER: overlay2
 
@@ -117,6 +115,7 @@ jobs:
 
   unit:
     runs-on: ubuntu-20.04
+    timeout-minutes: 120
     needs:
       - build-dev
     steps:
@@ -192,6 +191,7 @@ jobs:
 
   docker-py:
     runs-on: ubuntu-20.04
+    timeout-minutes: 120
     needs:
       - build-dev
     steps:
@@ -239,6 +239,7 @@ jobs:
 
   integration-flaky:
     runs-on: ubuntu-20.04
+    timeout-minutes: 120
     needs:
       - build-dev
     steps:
@@ -267,6 +268,7 @@ jobs:
 
   integration:
     runs-on: ${{ matrix.os }}
+    timeout-minutes: 120
     needs:
       - build-dev
     strategy:
@@ -411,6 +413,7 @@ jobs:
 
   integration-cli:
     runs-on: ubuntu-20.04
+    timeout-minutes: 120
     needs:
       - build-dev
       - integration-cli-prepare

+ 21 - 18
.gitignore

@@ -1,27 +1,30 @@
-# Docker project generated files to ignore
-#  if you want to ignore files created by your editor/tools,
-#  please consider a global .gitignore https://help.github.com/articles/ignoring-files
-*.exe
-*.exe~
-*.gz
+# If you want to ignore files created by your editor/tools, please consider a
+# [global .gitignore](https://help.github.com/articles/ignoring-files).
+
+*~
+*.bak
 *.orig
-test.main
 .*.swp
 .DS_Store
-# a .bashrc may be added to customize the build environment
+thumbs.db
+
+# local repository customization
+.envrc
 .bashrc
 .editorconfig
-.gopath/
-.go-pkg-cache/
+
+# top-level go.mod is not meant to be checked in
+/go.mod
+# build artifacts
 bundles/
-cli/winresources/**/winres.json
-cli/winresources/**/*.syso
-cmd/dockerd/dockerd
+cli/winresources/*/*.syso
+cli/winresources/*/winres.json
 contrib/builder/rpm/*/changelog
-vendor/pkg/
+
+# ci artifacts
+*.exe
+*.gz
 go-test-report.json
-profile.out
 junit-report.xml
-
-# top-level go.mod is not meant to be checked in
-/go.mod
+profile.out
+test.main

+ 2 - 16
Jenkinsfile

@@ -260,12 +260,6 @@ pipeline {
                         }
                     }
                     agent { label 'ppc64le-ubuntu-1604' }
-                    // ppc64le machines run on Docker 18.06, and buildkit has some
-                    // bugs on that version. Build and use buildx instead.
-                    environment {
-                        USE_BUILDX      = '1'
-                        DOCKER_BUILDKIT = '0'
-                    }
 
                     stages {
                         stage("Print info") {
@@ -282,8 +276,7 @@ pipeline {
                         stage("Build dev image") {
                             steps {
                                 sh '''
-                                make bundles/buildx
-                                bundles/buildx build --load --force-rm --build-arg APT_MIRROR -t docker:${GIT_COMMIT} .
+                                docker buildx build --load --force-rm --build-arg APT_MIRROR -t docker:${GIT_COMMIT} .
                                 '''
                             }
                         }
@@ -379,12 +372,6 @@ pipeline {
                         }
                     }
                     agent { label 'ppc64le-ubuntu-1604' }
-                    // ppc64le machines run on Docker 18.06, and buildkit has some
-                    // bugs on that version. Build and use buildx instead.
-                    environment {
-                        USE_BUILDX      = '1'
-                        DOCKER_BUILDKIT = '0'
-                    }
 
                     stages {
                         stage("Print info") {
@@ -401,8 +388,7 @@ pipeline {
                         stage("Build dev image") {
                             steps {
                                 sh '''
-                                make bundles/buildx
-                                bundles/buildx build --load --force-rm --build-arg APT_MIRROR -t docker:${GIT_COMMIT} .
+                                docker buildx build --load --force-rm --build-arg APT_MIRROR -t docker:${GIT_COMMIT} .
                                 '''
                             }
                         }

+ 6 - 39
Makefile

@@ -1,21 +1,7 @@
 .PHONY: all binary dynbinary build cross help install manpages run shell test test-docker-py test-integration test-unit validate validate-% win
 
-BUILDX_VERSION ?= v0.9.1
-
-ifdef USE_BUILDX
-BUILDX ?= $(shell command -v buildx)
-BUILDX ?= $(shell command -v docker-buildx)
-DOCKER_BUILDX_CLI_PLUGIN_PATH ?= ~/.docker/cli-plugins/docker-buildx
-BUILDX ?= $(shell if [ -x "$(DOCKER_BUILDX_CLI_PLUGIN_PATH)" ]; then echo $(DOCKER_BUILDX_CLI_PLUGIN_PATH); fi)
-endif
-
-ifndef USE_BUILDX
-DOCKER_BUILDKIT := 1
-export DOCKER_BUILDKIT
-endif
-
-BUILDX ?= bundles/buildx
 DOCKER ?= docker
+BUILDX ?= $(DOCKER) buildx
 
 # set the graph driver as the current graphdriver if not set
 DOCKER_GRAPHDRIVER := $(if $(DOCKER_GRAPHDRIVER),$(DOCKER_GRAPHDRIVER),$(shell docker info 2>&1 | grep "Storage Driver" | sed 's/.*: //'))
@@ -155,12 +141,7 @@ DOCKER_BUILD_ARGS += --build-arg=SYSTEMD=true
 endif
 
 BUILD_OPTS := ${BUILD_APT_MIRROR} ${DOCKER_BUILD_ARGS} ${DOCKER_BUILD_OPTS} -f "$(DOCKERFILE)"
-ifdef USE_BUILDX
-BUILD_OPTS += $(BUILDX_BUILD_EXTRA_OPTS)
 BUILD_CMD := $(BUILDX) build
-else
-BUILD_CMD := $(DOCKER) build
-endif
 
 # This is used for the legacy "build" target and anything still depending on it
 BUILD_CROSS =
@@ -178,14 +159,14 @@ default: binary
 all: build ## validate all checks, build linux binaries, run all tests,\ncross build non-linux binaries, and generate archives
 	$(DOCKER_RUN_DOCKER) bash -c 'hack/validate/default && hack/make.sh'
 
-binary: buildx ## build statically linked linux binaries
+binary: bundles ## build statically linked linux binaries
 	$(BUILD_CMD) $(BUILD_OPTS) --output=bundles/ --target=$@ $(VERSION_AUTOGEN_ARGS) .
 
-dynbinary: buildx ## build dynamically linked linux binaries
+dynbinary: bundles ## build dynamically linked linux binaries
 	$(BUILD_CMD) $(BUILD_OPTS) --output=bundles/ --target=$@ $(VERSION_AUTOGEN_ARGS) .
 
 cross: BUILD_OPTS += --build-arg CROSS=true --build-arg DOCKER_CROSSPLATFORMS
-cross: buildx ## cross build the binaries for darwin, freebsd and\nwindows
+cross: bundles ## cross build the binaries for darwin, freebsd and\nwindows
 	$(BUILD_CMD) $(BUILD_OPTS) --output=bundles/ --target=$@ $(VERSION_AUTOGEN_ARGS) .
 
 bundles:
@@ -213,11 +194,8 @@ build: shell_target := --target=dev
 else
 build: shell_target := --target=final
 endif
-ifdef USE_BUILDX
-build: buildx_load := --load
-endif
-build: buildx
-	$(BUILD_CMD) $(BUILD_OPTS) $(shell_target) $(buildx_load) $(BUILD_CROSS) -t "$(DOCKER_IMAGE)" .
+build: bundles
+	$(BUILD_CMD) $(BUILD_OPTS) $(shell_target) --load $(BUILD_CROSS) -t "$(DOCKER_IMAGE)" .
 
 shell: build  ## start a shell inside the build env
 	$(DOCKER_RUN_DOCKER) bash
@@ -268,14 +246,3 @@ swagger-docs: ## preview the API documentation
 		-e 'REDOC_OPTIONS=hide-hostname="true" lazy-rendering' \
 		-p $(SWAGGER_DOCS_PORT):80 \
 		bfirsh/redoc:1.14.0
-
-.PHONY: buildx
-ifdef USE_BUILDX
-ifeq ($(BUILDX), bundles/buildx)
-buildx: bundles/buildx ## build buildx cli tool
-endif
-endif
-
-bundles/buildx: bundles ## build buildx CLI tool
-	curl -fsSL https://raw.githubusercontent.com/moby/buildkit/70deac12b5857a1aa4da65e90b262368e2f71500/hack/install-buildx | VERSION="$(BUILDX_VERSION)" BINDIR="$(@D)" bash
-	$@ version