Skip to content

Commit 6b53cfb

Browse files
committed
Reattempt to speed up deleting
1 parent de0761b commit 6b53cfb

File tree

1 file changed

+29
-17
lines changed

1 file changed

+29
-17
lines changed

src/ci/scripts/free-disk-space.sh

+29-17
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,18 @@
55
# MACROS
66
# ======
77

8+
fast_rmdir() {
9+
if [[ -d "$1" ]] && [[ -n "$1" ]] && [[ ! "$1" = "/" ]] && [[ ! "$1" = "~" ]]; then
10+
echo "Removing directory: $1"
11+
sudo find "$1" -type f -delete -print | wc -l
12+
sudo rm -rf "$1"
13+
fi
14+
}
15+
16+
list_installed_dpkg() {
17+
dpkg --get-selections $@ | grep -v deinstall | awk '{print $1}'
18+
}
19+
820
# macro to print a line of equals
921
# # (silly but works)
1022
printSeparationLine() {
@@ -79,7 +91,7 @@ echo ""
7991
# Remove Android library
8092
BEFORE=$(getAvailableSpace)
8193

82-
sudo rm -rf /usr/local/lib/android || true
94+
fast_rmdir /usr/local/lib/android || true
8395

8496
AFTER=$(getAvailableSpace)
8597
SAVED=$((AFTER-BEFORE))
@@ -90,7 +102,7 @@ printSavedSpace $SAVED "Android library"
90102
BEFORE=$(getAvailableSpace)
91103

92104
# https://github.community/t/bigger-github-hosted-runners-disk-space/17267/11
93-
sudo rm -rf /usr/share/dotnet || true
105+
fast_rmdir /usr/share/dotnet || true
94106

95107
AFTER=$(getAvailableSpace)
96108
SAVED=$((AFTER-BEFORE))
@@ -99,8 +111,8 @@ printSavedSpace $SAVED ".NET runtime"
99111
# Remove Haskell runtime
100112
BEFORE=$(getAvailableSpace)
101113

102-
sudo rm -rf /opt/ghc || true
103-
sudo rm -rf /usr/local/.ghcup || true
114+
fast_rmdir /opt/ghc || true
115+
fast_rmdir /usr/local/.ghcup || true
104116

105117
AFTER=$(getAvailableSpace)
106118
SAVED=$((AFTER-BEFORE))
@@ -111,19 +123,19 @@ printSavedSpace $SAVED "Haskell runtime"
111123

112124
BEFORE=$(getAvailableSpace)
113125

114-
sudo apt-get remove -y '^aspnetcore-.*' || echo "::warning::The command [sudo apt-get remove -y '^aspnetcore-.*'] failed to complete successfully. Proceeding..."
115-
sudo apt-get remove -y '^dotnet-.*' --fix-missing || echo "::warning::The command [sudo apt-get remove -y '^dotnet-.*' --fix-missing] failed to complete successfully. Proceeding..."
116-
sudo apt-get remove -y '^llvm-.*' --fix-missing || echo "::warning::The command [sudo apt-get remove -y '^llvm-.*' --fix-missing] failed to complete successfully. Proceeding..."
117-
sudo apt-get remove -y 'php.*' --fix-missing || echo "::warning::The command [sudo apt-get remove -y 'php.*' --fix-missing] failed to complete successfully. Proceeding..."
118-
sudo apt-get remove -y '^mongodb-.*' --fix-missing || echo "::warning::The command [sudo apt-get remove -y '^mongodb-.*' --fix-missing] failed to complete successfully. Proceeding..."
119-
sudo apt-get remove -y '^mysql-.*' --fix-missing || echo "::warning::The command [sudo apt-get remove -y '^mysql-.*' --fix-missing] failed to complete successfully. Proceeding..."
120-
sudo apt-get remove -y azure-cli google-chrome-stable firefox powershell mono-devel libgl1-mesa-dri --fix-missing || echo "::warning::The command [sudo apt-get remove -y azure-cli google-chrome-stable firefox powershell mono-devel libgl1-mesa-dri --fix-missing] failed to complete successfully. Proceeding..."
121-
sudo apt-get remove -y google-cloud-sdk --fix-missing || echo "::debug::The command [sudo apt-get remove -y google-cloud-sdk --fix-missing] failed to complete successfully. Proceeding..."
122-
sudo apt-get remove -y google-cloud-cli --fix-missing || echo "::debug::The command [sudo apt-get remove -y google-cloud-cli --fix-missing] failed to complete successfully. Proceeding..."
123-
sudo apt-get remove -y microsoft-edge-stable --fix-missing || echo "::debug::The command [sudo apt-get remove -y microsoft-edge-stable --fix-missing] failed to complete successfully. Proceeding..."
124-
sudo apt-get remove -y snapd --fix-missing || echo "::debug::The command [sudo apt-get remove -y snapd --fix-missing] failed to complete successfully. Proceeding..."
125-
sudo apt-get autoremove -y || echo "::warning::The command [sudo apt-get autoremove -y] failed to complete successfully. Proceeding..."
126-
sudo apt-get clean || echo "::warning::The command [sudo apt-get clean] failed to complete successfully. Proceeding..."
126+
pkgs=$(list_installed_dpkg 'microsoft-edge-*' 'snapd-*' 'aspnetcore-*' 'dotnet-*' 'llvm-*' '*php*' 'mongodb-*' 'mysql-*' azure-cli google-chrome-stable firefox powershell mono-devel libgl1-mesa-dri 'google-cloud-*' 'gcloud-*' || true)
127+
gcloud_prerm='#!/bin/sh
128+
echo $0
129+
if [ -d "/usr/lib/google-cloud-sdk" ]; then
130+
echo "Cleaning Google Cloud CLI files..."
131+
find /usr/lib/google-cloud-sdk -type f -delete -print | wc -l
132+
rm -rf /usr/lib/google-cloud-sdk
133+
echo "Cleaning Google Cloud CLI manuals..."
134+
find /usr/share/man -type f -name "gcloud*" -delete -print | wc -l
135+
fi'
136+
echo "$gcloud_prerm" | sudo tee /var/lib/dpkg/info/google-cloud-cli-anthoscli.prerm >/dev/null
137+
echo "$gcloud_prerm" | sudo tee /var/lib/dpkg/info/google-cloud-cli.prerm >/dev/null
138+
sudo apt-get remove --autoremove -y $pkgs || echo "::warning::The command [sudo apt-get remove -y] failed to complete successfully. Proceeding..."
127139

128140
AFTER=$(getAvailableSpace)
129141
SAVED=$((AFTER-BEFORE))

0 commit comments

Comments
 (0)