mirror of
https://github.com/python/cpython.git
synced 2025-12-08 06:10:17 +00:00
GH-136895: Fixes for pulling LLVM as a release artifact (#141002)
This commit is contained in:
parent
9bf5100037
commit
42d0140860
2 changed files with 25 additions and 17 deletions
|
|
@ -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__':
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue