aboutsummaryrefslogtreecommitdiff
path: root/.github/workflows/upload_github_release_asset.py
diff options
context:
space:
mode:
authorJack O'Connor <[email protected]>2022-11-20 17:08:49 -0800
committerJack O'Connor <[email protected]>2022-11-20 17:18:35 -0800
commit56b72b173825a4f82e20db0aa38754bfed45d8b6 (patch)
tree0c2f79f3987c0e47a3881289810dfe47d87c759c /.github/workflows/upload_github_release_asset.py
parent537e96747a7a7962a49fc68c3cc349c90646ac2f (diff)
add another retry loop to upload_github_release_asset.py
While we're at it, black format the .py files in this directory.
Diffstat (limited to '.github/workflows/upload_github_release_asset.py')
-rwxr-xr-x.github/workflows/upload_github_release_asset.py20
1 files changed, 14 insertions, 6 deletions
diff --git a/.github/workflows/upload_github_release_asset.py b/.github/workflows/upload_github_release_asset.py
index c1cbf51..76340be 100755
--- a/.github/workflows/upload_github_release_asset.py
+++ b/.github/workflows/upload_github_release_asset.py
@@ -3,6 +3,7 @@
import github
import os
import sys
+import time
RETRIES = 10
@@ -10,7 +11,7 @@ g = github.Github(os.environ["GITHUB_TOKEN"])
tag_name = os.environ["GITHUB_TAG"]
tag_prefix = "refs/tags/"
if tag_name.startswith(tag_prefix):
- tag_name = tag_name[len(tag_prefix):]
+ tag_name = tag_name[len(tag_prefix) :]
assert len(sys.argv) == 2
asset_path = sys.argv[1]
asset_name = os.path.basename(asset_path)
@@ -34,13 +35,20 @@ except github.GithubException as github_error:
else:
raise
-releases = list(repo.get_releases())
-for release in releases:
- if release.tag_name == tag_name:
- break
-else:
+
+def get_release():
+ for i in range(RETRIES):
+ releases = list(repo.get_releases())
+ for release in releases:
+ if release.tag_name == tag_name:
+ return release
+ print(f"Release for tag {repr(tag_name)} not found. Retrying...")
+ time.sleep(1)
raise RuntimeError("no release for tag " + repr(tag_name))
+
+release = get_release()
+
print("Uploading " + repr(asset_path) + "...")
for i in range(RETRIES):
try: