GH-136895: Fixes for pulling LLVM as a release artifact (#141002)

This commit is contained in:
Savannah Ostrowski
2025-11-06 11:58:01 -08:00
committed by GitHub
parent 9bf5100037
commit 42d0140860
2 changed files with 25 additions and 17 deletions

View File

@@ -3,8 +3,8 @@
import argparse
import os
import pathlib
import shutil
import sys
import tarfile
import time
import urllib.error
import urllib.request
@@ -56,7 +56,8 @@ def fetch_release(tag, tarball_dir, *, org='python', verbose=False):
def extract_tarball(externals_dir, tarball_path, tag):
output_path = externals_dir / tag
shutil.unpack_archive(os.fspath(tarball_path), os.fspath(output_path))
with tarfile.open(tarball_path) as tf:
tf.extractall(os.fspath(externals_dir))
return output_path
@@ -115,21 +116,23 @@ def main():
verbose=args.verbose,
)
extracted = extract_zip(args.externals_dir, zip_path)
for wait in [1, 2, 3, 5, 8, 0]:
try:
extracted.replace(final_name)
break
except PermissionError as ex:
retry = f" Retrying in {wait}s..." if wait else ""
print(f"Encountered permission error '{ex}'.{retry}", file=sys.stderr)
time.sleep(wait)
else:
print(
f"ERROR: Failed to extract {final_name}.",
"You may need to restart your build",
file=sys.stderr,
)
sys.exit(1)
if extracted != final_name:
for wait in [1, 2, 3, 5, 8, 0]:
try:
extracted.replace(final_name)
break
except PermissionError as ex:
retry = f" Retrying in {wait}s..." if wait else ""
print(f"Encountered permission error '{ex}'.{retry}", file=sys.stderr)
time.sleep(wait)
else:
print(
f"ERROR: Failed to rename {extracted} to {final_name}.",
"You may need to restart your build",
file=sys.stderr,
)
sys.exit(1)
if __name__ == '__main__':