From 281ad13f6b4a38e452d701bf9b2aae3fc34b2397 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Thu, 17 Nov 2022 08:45:26 +0530 Subject: [PATCH] Retry uploading file to Github --- publish.py | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/publish.py b/publish.py index f5e6ef9ba..721f90fa6 100755 --- a/publish.py +++ b/publish.py @@ -301,9 +301,19 @@ def __call__(self) -> None: r = self.requests.delete(asset_url.format(existing_assets[fname])) if r.status_code not in (204, 404): self.fail(r, f'Failed to delete {fname} from GitHub') - r = self.do_upload(upload_url, path, desc, fname) - if r.status_code != 201: - self.fail(r, f'Failed to upload file: {fname}') + num_tries = 4 + for i in range(1, num_tries+1): + try: + r = self.do_upload(upload_url, path, desc, fname) + except Exception: + if i >= num_tries: + raise + else: + if r.status_code == 201: + break + if i >= num_tries: + self.fail(r, f'Failed to upload file: {fname}') + time.sleep(1) self.patch(asset_url.format(r.json()['id']), f'Failed to set label for {fname}', name=fname, label=desc) def clean_older_releases(self, releases: Iterable[Dict[str, Any]]) -> None: