From 3f815953d6583d1f728fa8b40b316ed22a2c93b4 Mon Sep 17 00:00:00 2001 From: Ruifeng Zheng Date: Tue, 1 Aug 2023 15:37:26 +0800 Subject: [PATCH] [SPARK-44618][INFRA] Free up disk space for non-container jobs ### What changes were proposed in this pull request? uninstall unneeded packages, referring to https://github.com/apache/flink/blob/master/tools/azure-pipelines/free_disk_space.sh ### Why are the changes needed? increase the available disk space before: ![image](https://github.com/apache/spark/assets/7322292/ba7c6489-41d8-472f-8f73-a7b36422e029) after: ![image](https://github.com/apache/spark/assets/7322292/687d2f1f-8f45-41a8-9fe8-36dcc09e30c7) Unfortunately, this won't work for container jobs (`pyspark`, `sparkr`, `lint`), since those packages were not installed at all ### Does this PR introduce _any_ user-facing change? no, test-only ### How was this patch tested? updated CI Closes #42241 from zhengruifeng/infra_clean_non_container. Authored-by: Ruifeng Zheng Signed-off-by: Ruifeng Zheng --- .github/workflows/build_and_test.yml | 2 ++ dev/free_disk_space | 45 ++++++++++++++++++++++++++++ 2 files changed, 47 insertions(+) create mode 100755 dev/free_disk_space diff --git a/.github/workflows/build_and_test.yml b/.github/workflows/build_and_test.yml index 81d16dddde4b1..47c1be1ba863b 100644 --- a/.github/workflows/build_and_test.yml +++ b/.github/workflows/build_and_test.yml @@ -240,6 +240,8 @@ jobs: key: ${{ matrix.java }}-${{ matrix.hadoop }}-coursier-${{ hashFiles('**/pom.xml', '**/plugins.sbt') }} restore-keys: | ${{ matrix.java }}-${{ matrix.hadoop }}-coursier- + - name: Free up disk space + run: ./dev/free_disk_space - name: Install Java ${{ matrix.java }} uses: actions/setup-java@v3 with: diff --git a/dev/free_disk_space b/dev/free_disk_space new file mode 100755 index 0000000000000..f063780334ead --- /dev/null +++ b/dev/free_disk_space @@ -0,0 +1,45 @@ +#!/usr/bin/env bash + +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +echo "==================================" +echo "Free up disk space on CI system" +echo "==================================" + +echo "Listing 100 largest packages" +dpkg-query -Wf '${Installed-Size}\t${Package}\n' | sort -n | tail -n 100 +df -h +echo "Removing large packages" +sudo rm -rf /usr/share/dotnet/ +sudo rm -rf /usr/local/graalvm/ +sudo rm -rf /usr/local/.ghcup/ +sudo rm -rf /usr/local/share/powershell +sudo rm -rf /usr/local/share/chromium +sudo rm -rf /usr/local/lib/android +sudo rm -rf /usr/local/lib/node_modules + +sudo apt-get remove --purge -y '^aspnet.*' +sudo apt-get remove --purge -y '^dotnet-.*' +sudo apt-get remove --purge -y '^llvm-.*' +sudo apt-get remove --purge -y 'php.*' +sudo apt-get remove --purge -y '^mongodb-.*' +sudo apt-get remove --purge -y snapd google-chrome-stable microsoft-edge-stable firefox +sudo apt-get remove --purge -y azure-cli google-cloud-sdk mono-devel powershell libgl1-mesa-dri +sudo apt-get autoremove --purge -y +sudo apt-get clean +df -h