aboutsummaryrefslogtreecommitdiff
path: root/Makefile.docker
diff options
context:
space:
mode:
authorGravatar Yong Tang <yong.tang.github@outlook.com> 2022-02-17 11:59:40 -0800
committerGravatar GitHub <noreply@github.com> 2022-02-17 14:59:40 -0500
commit35e20700097c992264891fe239d348952d881633 (patch)
tree6773ad5ca12e1d17dfcf365ab08795cfafce9f02 /Makefile.docker
parent86a5902209a83a1cbb054780e9c9894406934e5c (diff)
downloadcoredns-35e20700097c992264891fe239d348952d881633.tar.gz
coredns-35e20700097c992264891fe239d348952d881633.tar.zst
coredns-35e20700097c992264891fe239d348952d881633.zip
Add retry logic before download asset from github (#5181)
The docker release fails when released binaries are not available for download immediately after the release is created. This PR adds retry logic (up to 10 min). Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
Diffstat (limited to 'Makefile.docker')
-rw-r--r--Makefile.docker15
1 files changed, 15 insertions, 0 deletions
diff --git a/Makefile.docker b/Makefile.docker
index 19cecbba0..7662790a7 100644
--- a/Makefile.docker
+++ b/Makefile.docker
@@ -47,6 +47,21 @@ ifeq ($(VERSION),)
$(error "Please specify a version use. Use VERSION=<version>")
endif
+ @# 0. Check until all asset are alive, up to 10 min (asset may not be alive immediately after upload)
+ try_max=20; try_sleep=30; \
+ for arch in $(LINUX_ARCH); do \
+ asset=coredns_$(VERSION)_linux_$${arch}.tgz; \
+ for i in $$(seq 1 $$try_max ); do \
+ if [ $$(curl -I -L -s -o /dev/null -w "%{http_code}" $(GITHUB)/v$(VERSION)/$$asset) -eq 200 ]; then \
+ echo "$$asset is live" ; break; \
+ else \
+ echo "$$asset is not live yet..." ; sleep $$try_sleep ; \
+ fi ; \
+ done ; \
+ if [ $$i -eq $$try_max ]; then \
+ echo "$$asset is not live after $$try_max tries" ; exit 1; \
+ fi ; \
+ done
@rm -rf build/docker
@mkdir -p build/docker
@# 1. Copy appropriate coredns binary to build/docker/<arch>