From 1f682685ef3e46d7104244388fb2de5105fc7d42 Mon Sep 17 00:00:00 2001 From: Amir Alavi Date: Mon, 12 Dec 2022 22:05:49 -0500 Subject: [PATCH] parallelize docker build for archs Signed-off-by: Amir Alavi --- Makefile | 4 +++- cloudbuild.yaml | 43 +++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 44 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index f620b23d5..f28d16793 100644 --- a/Makefile +++ b/Makefile @@ -84,7 +84,7 @@ push: image $(CONTAINER_ENGINE) tag $(IMAGE) $(IMAGE_GCLOUD) $(CONTAINER_ENGINE) push $(IMAGE_GCLOUD) -push-all: image.amd64 image.arm image.arm64 +push-images: gcloud auth configure-docker for arch in $(ARCHS); do \ $(CONTAINER_ENGINE) tag $(IMAGE)-$${arch} $(IMAGE_GCLOUD)-$${arch} ;\ @@ -96,6 +96,8 @@ push-all: image.amd64 image.arm image.arm64 done DOCKER_CLI_EXPERIMENTAL=enabled $(CONTAINER_ENGINE) manifest push $(IMAGE_GCLOUD) ;\ +push-all: image.amd64 image.arm image.arm64 push-images + clean: rm -rf _output rm -rf _tmp diff --git a/cloudbuild.yaml b/cloudbuild.yaml index 0b9c2ddff..f11b2275f 100644 --- a/cloudbuild.yaml +++ b/cloudbuild.yaml @@ -7,14 +7,53 @@ timeout: 1500s options: substitution_option: ALLOW_LOOSE steps: - - name: 'gcr.io/k8s-staging-test-infra/gcb-docker-gcloud:v20211118-2f2d816b90' + - name: 'gcr.io/k8s-staging-test-infra/gcb-docker-gcloud:v20221007-ad65926f6b' + id: image-amd64 entrypoint: make env: - DOCKER_CLI_EXPERIMENTAL=enabled - VERSION=$_GIT_TAG - BASE_REF=$_PULL_BASE_REF args: - - push-all + - image.amd64 + waitFor: ['-'] # run in parallel + + - name: 'gcr.io/k8s-staging-test-infra/gcb-docker-gcloud:v20221007-ad65926f6b' + id: image-arm + entrypoint: make + env: + - DOCKER_CLI_EXPERIMENTAL=enabled + - VERSION=$_GIT_TAG + - BASE_REF=$_PULL_BASE_REF + args: + - image.arm + waitFor: ['-'] + + - name: 'gcr.io/k8s-staging-test-infra/gcb-docker-gcloud:v20221007-ad65926f6b' + id: image-arm64 + entrypoint: make + env: + - DOCKER_CLI_EXPERIMENTAL=enabled + - VERSION=$_GIT_TAG + - BASE_REF=$_PULL_BASE_REF + args: + - image.arm64 + waitFor: ['-'] + + - name: 'gcr.io/k8s-staging-test-infra/gcb-docker-gcloud:v20221007-ad65926f6b' + entrypoint: make + env: + - DOCKER_CLI_EXPERIMENTAL=enabled + - VERSION=$_GIT_TAG + - BASE_REF=$_PULL_BASE_REF + args: + - push-images + waitFor: + - image-amd64 + - image-arm + - image-arm64 + + substitutions: # _GIT_TAG will be filled with a git-based tag for the image, of the form vYYYYMMDD-hash, and # can be used as a substitution