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