GH-136895: Fixes for pulling LLVM as a release artifact (#141002)
This commit is contained in:
committed by
GitHub
parent
9bf5100037
commit
42d0140860
@@ -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__':
|
||||
|
||||
Reference in New Issue
Block a user