diff options
author | 2022-02-17 11:59:40 -0800 | |
---|---|---|
committer | 2022-02-17 14:59:40 -0500 | |
commit | 35e20700097c992264891fe239d348952d881633 (patch) | |
tree | 6773ad5ca12e1d17dfcf365ab08795cfafce9f02 /Makefile.docker | |
parent | 86a5902209a83a1cbb054780e9c9894406934e5c (diff) | |
download | coredns-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.docker | 15 |
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> |