Browse Source

build: increase available space on mac arm64 vm (#25008)

Samuel Attard 4 years ago
parent
commit
29d9c02ab9

+ 13 - 1
.circleci/config.yml

@@ -335,9 +335,13 @@ step-get-more-space-on-mac: &step-get-more-space-on-mac
     command: |
       if [ "`uname`" == "Darwin" ]; then
         sudo mkdir -p $TMPDIR/del-target
+        if [ "$TARGET_ARCH" == "arm64" ]; then
+          # Remount the root volume as writable, don't ask questions plz
+          sudo mount -uw /
+        fi
         tmpify() {
           if [ -d "$1" ]; then
-            sudo mv $1 $TMPDIR/del-target/$(echo $1|shasum -a 256|head -n1|cut -d " " -f1)
+            sudo mv "$1" $TMPDIR/del-target/$(echo $1|shasum -a 256|head -n1|cut -d " " -f1)
           fi
         }
         tmpify /Library/Developer/CoreSimulator
@@ -350,6 +354,12 @@ step-get-more-space-on-mac: &step-get-more-space-on-mac
         tmpify ~/.rubies
         tmpify ~/Library/Caches/Homebrew
         tmpify /usr/local/Homebrew
+        if [ "$TARGET_ARCH" == "arm64" ]; then
+          tmpify "/System/Library/Desktop Pictures"
+          tmpify /System/Library/Templates/Data
+          tmpify /System/Library/Speech/Voices
+          tmpify "/System/Library/Screen Savers"
+        fi
         sudo rm -rf $TMPDIR/del-target
       fi
     background: true
@@ -930,6 +940,8 @@ step-minimize-workspace-size-from-checkout: &step-minimize-workspace-size-from-c
       rm -rf src/third_party/blink/web_tests
       rm -rf src/third_party/blink/perf_tests
       rm -rf src/third_party/WebKit/LayoutTests
+      rm -rf third_party/electron_node/deps/openssl
+      rm -rf third_party/electron_node/deps/v8
 
 # Save the src cache based on the deps hash
 step-save-src-cache: &step-save-src-cache

+ 12 - 12
patches/node/build_add_gn_build_files.patch

@@ -866,7 +866,7 @@ index 0000000000000000000000000000000000000000..2c9d2826c85bdd033f1df1d6188df636
 +}
 diff --git a/filenames.json b/filenames.json
 new file mode 100644
-index 0000000000000000000000000000000000000000..964255d66b8c77ccd919853c8fceb53789756255
+index 0000000000000000000000000000000000000000..2e07ea28437ee25ddaea4d730e1a65a56f4d6751
 --- /dev/null
 +++ b/filenames.json
 @@ -0,0 +1,519 @@
@@ -1176,17 +1176,17 @@ index 0000000000000000000000000000000000000000..964255d66b8c77ccd919853c8fceb537
 +    "lib/internal/streams/state.js",
 +    "lib/internal/streams/pipeline.js",
 +    "lib/internal/streams/end-of-stream.js",
-+    "deps/v8/tools/splaytree.js",
-+    "deps/v8/tools/codemap.js",
-+    "deps/v8/tools/consarray.js",
-+    "deps/v8/tools/csvparser.js",
-+    "deps/v8/tools/profile.js",
-+    "deps/v8/tools/profile_view.js",
-+    "deps/v8/tools/logreader.js",
-+    "deps/v8/tools/arguments.js",
-+    "deps/v8/tools/tickprocessor.js",
-+    "deps/v8/tools/SourceMap.js",
-+    "deps/v8/tools/tickprocessor-driver.js",
++    "//v8/tools/splaytree.js",
++    "//v8/tools/codemap.js",
++    "//v8/tools/consarray.js",
++    "//v8/tools/csvparser.js",
++    "//v8/tools/profile.js",
++    "//v8/tools/profile_view.js",
++    "//v8/tools/logreader.js",
++    "//v8/tools/arguments.js",
++    "//v8/tools/tickprocessor.js",
++    "//v8/tools/SourceMap.js",
++    "//v8/tools/tickprocessor-driver.js",
 +    "deps/node-inspect/lib/_inspect.js",
 +    "deps/node-inspect/lib/internal/inspect_client.js",
 +    "deps/node-inspect/lib/internal/inspect_repl.js",

+ 18 - 7
patches/node/build_modify_js2c_py_to_allow_injection_of_original-fs_and_custom_embedder_js.patch

@@ -38,10 +38,19 @@ index c0bce3bce42c848d63a10147ef483c9d4465f5ce..7f296e459d46b4cda51baf9887df060f
  
    bool Exists(const char* id);
 diff --git a/tools/js2c.py b/tools/js2c.py
-index d5109fcae5542730623f5ec3ca244ec0973109f2..8537f7fd50b0441307f91cad3bf9f730c2cb8cdf 100755
+index d5109fcae5542730623f5ec3ca244ec0973109f2..b25a9038ea7cfdb49b81e85f5bf497cc360e2b9e 100755
 --- a/tools/js2c.py
 +++ b/tools/js2c.py
-@@ -56,13 +56,15 @@ namespace native_module {{
+@@ -38,6 +38,8 @@ import functools
+ import codecs
+ 
+ def ReadFile(filename):
++  if filename.startswith("//v8"):
++    filename = "../../" + filename[2:]
+   if is_verbose:
+     print(filename)
+   with codecs.open(filename, "r", "utf-8") as f:
+@@ -56,13 +58,15 @@ namespace native_module {{
  
  {0}
  
@@ -59,7 +68,7 @@ index d5109fcae5542730623f5ec3ca244ec0973109f2..8537f7fd50b0441307f91cad3bf9f730
  
  }}  // namespace native_module
  
-@@ -112,8 +114,8 @@ def GetDefinition(var, source, step=30):
+@@ -112,8 +116,8 @@ def GetDefinition(var, source, step=30):
    return definition, len(code_points)
  
  
@@ -70,16 +79,18 @@ index d5109fcae5542730623f5ec3ca244ec0973109f2..8537f7fd50b0441307f91cad3bf9f730
    name = NormalizeFileName(filename)
    slug = SLUGGER_RE.sub('_', name)
    var = slug + '_raw'
-@@ -123,7 +125,7 @@ def AddModule(filename, definitions, initializers):
+@@ -123,7 +127,9 @@ def AddModule(filename, definitions, initializers):
    initializers.append(initializer)
  
  def NormalizeFileName(filename):
 -  split = filename.split(os.path.sep)
++  if filename.startswith('//v8'):
++    filename = "deps/" + filename[2:]
 +  split = os.path.normpath(filename).split(os.path.sep)
    if split[0] == 'deps':
      split = ['internal'] + split
    else:  # `lib/**/*.js` so drop the 'lib' part
-@@ -141,7 +143,7 @@ def NormalizeFileName(filename):
+@@ -141,7 +147,7 @@ def NormalizeFileName(filename):
    return os.path.splitext(filename)[0]
  
  
@@ -88,7 +99,7 @@ index d5109fcae5542730623f5ec3ca244ec0973109f2..8537f7fd50b0441307f91cad3bf9f730
    # Build source code lines
    definitions = []
    initializers = []
-@@ -149,13 +151,26 @@ def JS2C(source_files, target):
+@@ -149,13 +155,26 @@ def JS2C(source_files, target):
    for filename in source_files['.js']:
      AddModule(filename, definitions, initializers)
  
@@ -118,7 +129,7 @@ index d5109fcae5542730623f5ec3ca244ec0973109f2..8537f7fd50b0441307f91cad3bf9f730
    write_if_chaged(out, target)
  
  
-@@ -209,17 +224,21 @@ def main():
+@@ -209,17 +228,21 @@ def main():
    )
    parser.add_argument('--target', help='output file')
    parser.add_argument('--verbose', action='store_true', help='output file')