From af5ca8be731229b15204329b64ff4e760cdcfbb6 Mon Sep 17 00:00:00 2001 From: nanxun Date: Fri, 21 Aug 2026 23:18:52 +0800 Subject: [PATCH] ci: retry docker builds across proxy outages --- Jenkinsfile.backend-docker | 34 ++++++++++++++++++++-------------- 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/Jenkinsfile.backend-docker b/Jenkinsfile.backend-docker index 28a474e..1621ec2 100644 --- a/Jenkinsfile.backend-docker +++ b/Jenkinsfile.backend-docker @@ -88,20 +88,26 @@ pipeline { stage('Build linux-amd64 Image') { steps { - retry(2) { - sh ''' - set -euo pipefail - $DOCKER_CMD buildx build \ - --platform linux/amd64 \ - --load \ - --file Dockerfile.backend \ - --build-arg "BUILD_VERSION=$IMMUTABLE_TAG" \ - --build-arg "VCS_REF=$FULL_SHA" \ - --build-arg "BUILD_DATE=$BUILD_DATE" \ - --tag "$IMAGE_REF" \ - . - ''' - } + sh ''' + set -euo pipefail + for attempt in $(seq 1 6); do + if $DOCKER_CMD buildx build \ + --platform linux/amd64 \ + --load \ + --file Dockerfile.backend \ + --build-arg "BUILD_VERSION=$IMMUTABLE_TAG" \ + --build-arg "VCS_REF=$FULL_SHA" \ + --build-arg "BUILD_DATE=$BUILD_DATE" \ + --tag "$IMAGE_REF" \ + .; then + break + fi + if [ "$attempt" -ge 6 ]; then + exit 1 + fi + sleep $((attempt * 10)) + done + ''' sh ''' set -euo pipefail test "$($DOCKER_CMD image inspect "$IMAGE_REF" --format '{{.Os}}/{{.Architecture}}')" = 'linux/amd64'