mirror of
https://github.com/pytorch/pytorch.git
synced 2025-10-20 21:14:14 +08:00
[td] Consistent pytest cache (#113804)
Move the pytest cache downloading into the build step and store it in additional ci files so that it stays consistent during sharding. Only build env is taken into account now instead of also test config since we might not have the test config during build time, making it less specific, but I also think this might be better since tests are likely to fail across the same test config (I also think it might be worth not even looking at build env but thats a different topic) Each cache upload should only include information from the current run. Do not merge current cache with downloaded cache during upload (shouldn't matter anyways since the downloaded cache won't exist at the time) From what I cant tell of the s3 retention policy, pytest cache files will be deleted after 30 days (cc @ZainRizvi to confirm), so we never have to worry about space or pulling old versions. Pull Request resolved: https://github.com/pytorch/pytorch/pull/113804 Approved by: https://github.com/ZainRizvi
This commit is contained in:
committed by
PyTorch MergeBot
parent
033d7b670a
commit
dab272eed8
@ -4,6 +4,7 @@ import datetime
|
||||
import json
|
||||
import os
|
||||
import pathlib
|
||||
import shutil
|
||||
from typing import Any, Callable, cast, Dict, List, Optional, Union
|
||||
from urllib.request import urlopen
|
||||
|
||||
@ -26,6 +27,7 @@ TEST_FILE_RATINGS_FILE = "test-file-ratings.json"
|
||||
TEST_CLASS_RATINGS_FILE = "test-class-ratings.json"
|
||||
TD_HEURISTIC_PROFILING_FILE = "td_heuristic_profiling.json"
|
||||
TD_HEURISTIC_HISTORICAL_EDITED_FILES = "td_heuristic_historical_edited_files.json"
|
||||
TD_HEURISTIC_PREVIOUSLY_FAILED = "previous_failures.json"
|
||||
|
||||
FILE_CACHE_LIFESPAN_SECONDS = datetime.timedelta(hours=3).seconds
|
||||
|
||||
@ -153,6 +155,16 @@ def get_td_heuristic_profiling_json() -> Dict[str, Any]:
|
||||
)
|
||||
|
||||
|
||||
def copy_pytest_cache() -> None:
|
||||
original_path = REPO_ROOT / ".pytest_cache/v/cache/lastfailed"
|
||||
if not original_path.exists():
|
||||
return
|
||||
shutil.copyfile(
|
||||
original_path,
|
||||
REPO_ROOT / ADDITIONAL_CI_FILES_FOLDER / TD_HEURISTIC_PREVIOUSLY_FAILED,
|
||||
)
|
||||
|
||||
|
||||
def get_from_test_infra_generated_stats(
|
||||
from_file: str, to_file: str, failure_explanation: str
|
||||
) -> Dict[str, Any]:
|
||||
|
Reference in New Issue
Block a user