From 089e78068a1c4f8773b1d5a8bac6645c6414fdfd Mon Sep 17 00:00:00 2001 From: Matthias Loibl Date: Thu, 29 Feb 2024 16:18:56 +0100 Subject: [PATCH] Free disk space before releasing (#4329) --- .github/workflows/release-dry-run.yml | 4 ++ .github/workflows/release.yml | 4 ++ scripts/free_disk_space.sh | 65 +++++++++++++++++++++++++++ 3 files changed, 73 insertions(+) create mode 100755 scripts/free_disk_space.sh diff --git a/.github/workflows/release-dry-run.yml b/.github/workflows/release-dry-run.yml index 4cbef514c21..4f85d033981 100644 --- a/.github/workflows/release-dry-run.yml +++ b/.github/workflows/release-dry-run.yml @@ -72,6 +72,10 @@ jobs: with: fetch-depth: 0 + - name: Free up disk space + run: | + ./scripts/free_disk_space.sh + - name: Set up Go uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0 with: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 1f7a8ce5df6..db6a4ce55b4 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -28,6 +28,10 @@ jobs: with: fetch-depth: 0 + - name: Free up disk space + run: | + ./scripts/free_disk_space.sh + - name: Set up Go uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0 with: diff --git a/scripts/free_disk_space.sh b/scripts/free_disk_space.sh new file mode 100755 index 00000000000..43ec9cdfbd3 --- /dev/null +++ b/scripts/free_disk_space.sh @@ -0,0 +1,65 @@ +#!/usr/bin/env bash +# Copyright 2024 The Parca Authors +# Licensed 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. + +# 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. + +# +# The Azure provided machines typically have the following disk allocation: +# Total space: 85GB +# Allocated: 67 GB +# Free: 17 GB +# This script frees up 28 GB of disk space by deleting unneeded packages and +# large directories. +# The Flink end to end tests download and generate more than 17 GB of files, +# causing unpredictable behavior and build failures. +# +echo "==============================================================================" +echo "Freeing 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 apt-get remove -y '^dotnet-.*' +sudo apt-get remove -y '^llvm-.*' +sudo apt-get remove -y 'php.*' +sudo apt-get remove -y '^mongodb-.*' +sudo apt-get remove -y '^mysql-.*' +sudo apt-get remove -y azure-cli google-cloud-sdk hhvm google-chrome-stable firefox powershell mono-devel libgl1-mesa-dri +sudo apt-get autoremove -y +sudo apt-get clean +df -h +echo "Removing large directories" + +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 +df -h