Browse Source

build: ensure symbol files are named lowercase on disk so that boto can find them (#24858)

* build: ensure symbol files are named lowercase on disk so that boto can find them

* build: only do the lower case symbol copy on case sensitive file systems (#24876)

Co-authored-by: Samuel Attard <[email protected]>
Co-authored-by: Samuel Attard <[email protected]>
trop[bot] 4 years ago
parent
commit
f799b6eb37
1 changed files with 18 additions and 0 deletions
  1. 18 0
      script/release/uploaders/upload-symbols.py

+ 18 - 0
script/release/uploaders/upload-symbols.py

@@ -2,8 +2,14 @@
 
 import glob
 import os
+import shutil
 import subprocess
 import sys
+import tempfile
+
+def is_fs_case_sensitive():
+  with tempfile.NamedTemporaryFile(prefix='TmP') as tmp_file:
+    return(not os.path.exists(tmp_file.name.lower()))
 
 sys.path.append(
   os.path.abspath(os.path.dirname(os.path.abspath(__file__)) + "/../.."))
@@ -49,7 +55,19 @@ def main():
 
   # The symbol server needs lowercase paths, it will fail otherwise
   # So lowercase all the file paths here
+  if is_fs_case_sensitive():
+    for f in files:
+      lower_f = f.lower()
+      if lower_f != f:
+        if os.path.exists(lower_f):
+          shutil.rmtree(lower_f)
+        lower_dir = os.path.dirname(lower_f)
+        if not os.path.exists(lower_dir):
+          os.makedirs(lower_dir)
+        shutil.copy2(f, lower_f)
   files = [f.lower() for f in files]
+  for f in files:
+    assert os.path.exists(f)
 
   bucket, access_key, secret_key = s3_config()
   upload_symbols(bucket, access_key, secret_key, files)