releaser: refactor; add func GetReleaseHandler

This commit is contained in:
umarcor
2021-12-20 03:04:00 +01:00
parent 4d666520a0
commit dcaff1e5a1

View File

@@ -80,28 +80,25 @@ def GetGitHubAPIHandler():
return Github(environ["GITHUB_USER"], environ["GITHUB_PASS"]) return Github(environ["GITHUB_USER"], environ["GITHUB_PASS"])
files = GetListOfArtifacts(sys_argv) def GetReleaseHandler(gh):
gh = GetGitHubAPIHandler() print("· Get Repository handler")
if "GITHUB_REPOSITORY" not in environ:
print("· Get Repository handler")
if "GITHUB_REPOSITORY" not in environ:
stdout.flush() stdout.flush()
raise (Exception("Repository name not defined! Please set 'GITHUB_REPOSITORY")) raise (Exception("Repository name not defined! Please set 'GITHUB_REPOSITORY"))
gh_repo = gh.get_repo(environ["GITHUB_REPOSITORY"]) gh_repo = gh.get_repo(environ["GITHUB_REPOSITORY"])
print("· Get Release handler") print("· Get Release handler")
tag = getenv("INPUT_TAG", "tip") tag = getenv("INPUT_TAG", "tip")
env_tag = None env_tag = None
gh_ref = environ["GITHUB_REF"] gh_ref = environ["GITHUB_REF"]
is_prerelease = True is_prerelease = True
is_draft = False is_draft = False
if gh_ref[0:10] == "refs/tags/": if gh_ref[0:10] == "refs/tags/":
env_tag = gh_ref[10:] env_tag = gh_ref[10:]
if env_tag != tag: if env_tag != tag:
rexp = r"^(?P<major>0|[1-9]\d*)\.(?P<minor>0|[1-9]\d*)\.(?P<patch>0|[1-9]\d*)(?:-(?P<prerelease>(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+(?P<buildmetadata>[0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$" rexp = r"^(?P<major>0|[1-9]\d*)\.(?P<minor>0|[1-9]\d*)\.(?P<patch>0|[1-9]\d*)(?:-(?P<prerelease>(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+(?P<buildmetadata>[0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$"
@@ -122,19 +119,19 @@ if gh_ref[0:10] == "refs/tags/":
print("! Skipping snapshot prerelease") print("! Skipping snapshot prerelease")
sys_exit() sys_exit()
gh_tag = None gh_tag = None
try: try:
gh_tag = gh_repo.get_git_ref(f"tags/{tag!s}") gh_tag = gh_repo.get_git_ref(f"tags/{tag!s}")
except Exception: except Exception:
stdout.flush() stdout.flush()
if gh_tag: if gh_tag:
try: try:
gh_release = gh_repo.get_release(tag) gh_release = gh_repo.get_release(tag)
except Exception: except Exception:
gh_release = gh_repo.create_git_release(tag, tag, "", draft=True, prerelease=is_prerelease) gh_release = gh_repo.create_git_release(tag, tag, "", draft=True, prerelease=is_prerelease)
is_draft = True is_draft = True
else: else:
err_msg = f"Tag/release '{tag!s}' does not exist and could not create it!" err_msg = f"Tag/release '{tag!s}' does not exist and could not create it!"
if "GITHUB_SHA" not in environ: if "GITHUB_SHA" not in environ:
raise (Exception(err_msg)) raise (Exception(err_msg))
@@ -146,6 +143,13 @@ else:
except Exception: except Exception:
raise (Exception(err_msg)) raise (Exception(err_msg))
return (gh_repo, gh_release, tag, env_tag, is_prerelease, is_draft)
files = GetListOfArtifacts(sys_argv)
[gh_repo, gh_release, tag, env_tag, is_prerelease, is_draft] = GetReleaseHandler(GetGitHubAPIHandler())
print("· Cleanup and/or upload artifacts") print("· Cleanup and/or upload artifacts")
artifacts = files artifacts = files