Download ccache from release PRs for backports

This commit is contained in:
Mikhail f. Shiryaev 2022-09-14 18:23:37 +02:00
parent c8dcd34abe
commit c2b02c2ae9
No known key found for this signature in database
GPG Key ID: 4B02ED204C7D93F4
4 changed files with 14 additions and 4 deletions

View File

@ -291,7 +291,9 @@ def main():
logging.info("Will try to fetch cache for our build")
try:
get_ccache_if_not_exists(ccache_path, s3_helper, pr_info.number, TEMP_PATH)
get_ccache_if_not_exists(
ccache_path, s3_helper, pr_info.number, TEMP_PATH, pr_info.release_pr
)
except Exception as e:
# In case there are issues with ccache, remove the path and do not fail a build
logging.info("Failed to get ccache, building without it. Error: %s", e)

View File

@ -11,6 +11,7 @@ import requests # type: ignore
from compress_files import decompress_fast, compress_fast
from env_helper import S3_DOWNLOAD, S3_BUILDS_BUCKET
from s3_helper import S3Helper
DOWNLOAD_RETRIES_COUNT = 5
@ -57,12 +58,19 @@ def dowload_file_with_progress(url, path):
def get_ccache_if_not_exists(
path_to_ccache_dir, s3_helper, current_pr_number, temp_path
path_to_ccache_dir: str,
s3_helper: S3Helper,
current_pr_number: int,
temp_path: str,
release_pr: int,
) -> int:
"""returns: number of PR for downloaded PR. -1 if ccache not found"""
ccache_name = os.path.basename(path_to_ccache_dir)
cache_found = False
prs_to_check = [current_pr_number]
# Release PR is either 0 or defined
if release_pr:
prs_to_check.append(release_pr)
ccache_pr = -1
if current_pr_number != 0:
prs_to_check.append(0)

View File

@ -125,7 +125,7 @@ if __name__ == "__main__":
logging.info("Will try to fetch cache for our build")
ccache_for_pr = get_ccache_if_not_exists(
cache_path, s3_helper, pr_info.number, temp_path
cache_path, s3_helper, pr_info.number, temp_path, pr_info.release_pr
)
upload_master_ccache = ccache_for_pr in (-1, 0)

View File

@ -86,7 +86,7 @@ class PRInfo:
self.changed_files = set() # type: Set[str]
self.body = ""
self.diff_urls = []
self.release_pr = ""
self.release_pr = 0
ref = github_event.get("ref", "refs/head/master")
if ref and ref.startswith("refs/heads/"):
ref = ref[11:]