feat: update checkout to release

This commit is contained in:
张泊明518370910136 2021-11-04 01:34:38 +08:00
parent 18bfc4d6f7
commit a399a07533
No known key found for this signature in database
GPG Key ID: FBEF5DE8B9F4C629
3 changed files with 9 additions and 7 deletions

View File

@ -117,8 +117,11 @@ class Teapot:
repo_releases = self.gitea.get_repo_releases(repo_name) repo_releases = self.gitea.get_repo_releases(repo_name)
release = first(repo_releases, lambda item: item.name == release_name) release = first(repo_releases, lambda item: item.name == release_name)
if release is None or release.created_at.replace(tzinfo=None) >= due: if release is None or release.created_at.replace(tzinfo=None) >= due:
logger.warning(
f"{self.gitea.org_name}/{repo_name} checkout to "
f"release by name {release_name} fail"
)
return False return False
# TODO: checkout by commit hash to prevent re-create tag
self.git.repo_clean_and_checkout(repo_name, f"tags/{release.tag_name}") self.git.repo_clean_and_checkout(repo_name, f"tags/{release.tag_name}")
logger.info( logger.info(
f"{self.gitea.org_name}/{repo_name} checkout to " f"{self.gitea.org_name}/{repo_name} checkout to "

View File

@ -83,7 +83,7 @@ class Git:
except GitCommandError as e: except GitCommandError as e:
if "Connection refused" in e.stderr or "Connection reset" in e.stderr: if "Connection refused" in e.stderr or "Connection reset" in e.stderr:
logger.warning( logger.warning(
f"{repo_name} connection refused/reset in clone. " f"{repo_name} connection refused/reset in fetch. "
"Probably by JI firewall." "Probably by JI firewall."
) )
logger.info(f"wait for {retry_interval} seconds to retry...") logger.info(f"wait for {retry_interval} seconds to retry...")

View File

@ -234,7 +234,6 @@ class Gitea:
"enable_merge_whitelist": False, "enable_merge_whitelist": False,
"enable_push": True, "enable_push": True,
"enable_push_whitelist": True, "enable_push_whitelist": True,
"enable_status_check": False,
"merge_whitelist_teams": [], "merge_whitelist_teams": [],
"merge_whitelist_usernames": [], "merge_whitelist_usernames": [],
"protected_file_patterns": "", "protected_file_patterns": "",
@ -243,7 +242,8 @@ class Gitea:
"push_whitelist_usernames": [], "push_whitelist_usernames": [],
"require_signed_commits": False, "require_signed_commits": False,
"required_approvals": max(student_count - 1, 0), "required_approvals": max(student_count - 1, 0),
"status_check_contexts": [], "enable_status_check": True,
"status_check_contexts": ["continuous-integration/drone/pr"],
}, },
) )
except ApiException as e: except ApiException as e:
@ -272,14 +272,13 @@ class Gitea:
return res return res
def get_repo_releases(self, repo_name: str) -> List[Any]: def get_repo_releases(self, repo_name: str) -> List[Any]:
res = []
try: try:
args = self.repository_api.repo_list_releases, self.org_name, repo_name args = self.repository_api.repo_list_releases, self.org_name, repo_name
res = list_all(*args) return list_all(*args)
except ApiException as e: except ApiException as e:
if e.status != 404: if e.status != 404:
raise raise
return res return []
def get_all_repo_names(self) -> List[str]: def get_all_repo_names(self) -> List[str]:
return [ return [