diff --git a/Jenkinsfile b/Jenkinsfile index d2a80ce..ae50cdb 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -304,7 +304,19 @@ printf '%s\n' "${gate_rc}" > build/quality-gate.rc container('builder') { sh ''' set -euo pipefail - docker buildx build \ + retry_buildx() { + attempt=1 + while [ "${attempt}" -le 3 ]; do + if docker buildx build "$@"; then + return 0 + fi + echo "buildx attempt ${attempt}/3 failed; retrying after registry/network backoff" >&2 + sleep $((attempt * 15)) + attempt=$((attempt + 1)) + done + return 1 + } + retry_buildx \ --platform linux/arm64 \ --file Dockerfile.base \ --tag "${REGISTRY}/ariadne-base:py312" \ @@ -321,7 +333,19 @@ printf '%s\n' "${gate_rc}" > build/quality-gate.rc sh ''' set -euo pipefail VERSION_TAG="$(cut -d= -f2 build.env)" - docker buildx build \ + retry_buildx() { + attempt=1 + while [ "${attempt}" -le 3 ]; do + if docker buildx build "$@"; then + return 0 + fi + echo "buildx attempt ${attempt}/3 failed; retrying after registry/network backoff" >&2 + sleep $((attempt * 15)) + attempt=$((attempt + 1)) + done + return 1 + } + retry_buildx \ --platform linux/arm64 \ --tag "${IMAGE}:${VERSION_TAG}" \ --tag "${IMAGE}:latest" \