releaser: refactor; add func GetOrCreateRelease

This commit is contained in:
umarcor
2021-12-20 03:56:28 +01:00
parent 548437b824
commit 4177a535f1

View File

@@ -113,12 +113,8 @@ def GetReleaseHandler(gh):
raise (Exception("Repository name not defined! Please set 'GITHUB_REPOSITORY")) raise (Exception("Repository name not defined! Please set 'GITHUB_REPOSITORY"))
return gh.get_repo(repo) return gh.get_repo(repo)
[tag, env_tag, is_prerelease] = CheckRefSemVer(environ["GITHUB_REF"], getenv("INPUT_TAG", "tip")) def GetOrCreateRelease(gh_repo, tag):
gh_repo = GetRepositoryHandler(getenv("GITHUB_REPOSITORY", None))
print("· Get Release handler") print("· Get Release handler")
is_draft = False
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}")
@@ -127,22 +123,27 @@ def GetReleaseHandler(gh):
if gh_tag: if gh_tag:
try: try:
gh_release = gh_repo.get_release(tag) return (gh_repo.get_release(tag), False)
except Exception: except Exception:
gh_release = gh_repo.create_git_release(tag, tag, "", draft=True, prerelease=is_prerelease) return (gh_repo.create_git_release(tag, tag, "", draft=True, prerelease=is_prerelease), 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))
try: try:
gh_release = gh_repo.create_git_tag_and_release( return (
gh_repo.create_git_tag_and_release(
tag, "", tag, "", environ["GITHUB_SHA"], "commit", draft=True, prerelease=is_prerelease tag, "", tag, "", environ["GITHUB_SHA"], "commit", draft=True, prerelease=is_prerelease
),
True,
) )
is_draft = True
except Exception: except Exception:
raise (Exception(err_msg)) raise (Exception(err_msg))
[tag, env_tag, is_prerelease] = CheckRefSemVer(environ["GITHUB_REF"], getenv("INPUT_TAG", "tip"))
gh_repo = GetRepositoryHandler(getenv("GITHUB_REPOSITORY", None))
[gh_release, is_draft] = GetOrCreateRelease(gh_repo, tag)
return (gh_repo, gh_release, tag, env_tag, is_prerelease, is_draft) return (gh_repo, gh_release, tag, env_tag, is_prerelease, is_draft)