Skip to content

Commit 75802a9

Browse files
committed
debug
1 parent 02e1211 commit 75802a9

File tree

1 file changed

+97
-89
lines changed

1 file changed

+97
-89
lines changed

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

Lines changed: 97 additions & 89 deletions
Original file line numberDiff line numberDiff line change
@@ -30,25 +30,38 @@ formatByteCount() {
3030
numfmt --to=iec-i --suffix=B --padding=7 "$1"'000'
3131
}
3232

33-
# macro to output saved space
34-
printSavedSpace() {
35-
# Disk space before the operation
36-
local before=${1}
37-
local title=${2:-}
33+
isX86() {
34+
local arch
35+
arch=$(uname -m)
36+
if [ "$arch" = "x86_64" ]; then
37+
return 0
38+
else
39+
return 1
40+
fi
41+
}
42+
43+
# Measure saved space and how long it took to run the task
44+
execAndMeasure() {
45+
local task_name=${1}
46+
47+
local start
48+
start=$(date +%s)
3849

50+
local before
51+
before=$(getAvailableSpace)
52+
53+
# Run the task. Skip the first argument because it's the task name.
54+
"${@:2}"
55+
56+
local end
57+
end=$(date +%s)
3958
local after
4059
after=$(getAvailableSpace)
60+
4161
local saved=$((after - before))
62+
local seconds_taken=$((end - start))
4263

43-
echo ""
44-
printSeparationLine "*"
45-
if [ -n "${title}" ]; then
46-
echo "=> ${title}: Saved $(formatByteCount "$saved")"
47-
else
48-
echo "=> Saved $(formatByteCount "$saved")"
49-
fi
50-
printSeparationLine "*"
51-
echo ""
64+
echo "==> ${task_name}: Saved $(formatByteCount "$saved") in $seconds_taken seconds"
5265
}
5366

5467
# macro to print output of df with caption
@@ -64,19 +77,6 @@ printDF() {
6477
printSeparationLine "="
6578
}
6679

67-
removeRecursive() {
68-
element=${1}
69-
70-
local before
71-
if [ ! -e "$element" ]; then
72-
echo "::warning::Directory or file $element does not exist, skipping."
73-
else
74-
before=$(getAvailableSpace)
75-
sudo rm -rf "$element"
76-
printSavedSpace "$before" "Removed $element"
77-
fi
78-
}
79-
8080
removeUnusedDirsAndFiles() {
8181
local to_remove=(
8282
"/etc/mysql"
@@ -133,11 +133,17 @@ removeUnusedDirsAndFiles() {
133133
)
134134

135135
for element in "${to_remove[@]}"; do
136-
removeRecursive "$element"
136+
if [ ! -e "$element" ]; then
137+
echo "::warning::Directory or file $element does not exist, skipping."
138+
else
139+
execAndMeasure "Removed $element" sudo rm -rf "$element"
140+
fi
137141
done
138142
}
139143

140144
removeNodeModules() {
145+
npm list -g --depth=0
146+
141147
sudo npm uninstall -g \
142148
"@bazel/bazelisk" \
143149
"bazel" \
@@ -153,53 +159,50 @@ removeNodeModules() {
153159
"yarn"
154160
}
155161

156-
execAndMeasureSpaceChange() {
157-
local operation=${1} # Function to execute
158-
local title=${2}
159-
160-
local before
161-
before=$(getAvailableSpace)
162-
$operation
163-
164-
printSavedSpace "$before" "$title"
165-
}
166-
167162
# Remove large packages
168163
# REF: https://github.com/apache/flink/blob/master/tools/azure-pipelines/free_disk_space.sh
169164
cleanPackages() {
170-
sudo apt-get purge -y --autoremove --fix-missing \
171-
'.*-icon-theme$' \
172-
'^aspnetcore-.*' \
173-
'^dotnet-.*' \
174-
'^java-*' \
175-
'^libllvm.*' \
176-
'^llvm-.*' \
177-
'^mercurial.*' \
178-
'^mysql-.*' \
179-
'^vim.*' \
180-
'^fonts-.*' \
181-
'azure-cli' \
182-
'buildah' \
183-
'cpp-13' \
184-
'firefox' \
185-
'gcc-12' \
186-
'gcc-13' \
187-
'gcc-14' \
188-
'gcc' \
189-
'g++-14' \
190-
'gfortran-14' \
191-
'google-chrome-stable' \
192-
'google-cloud-cli' \
193-
'groff-base' \
194-
'kubectl' \
195-
'libgl1-mesa-dri' \
196-
'microsoft-edge-stable' \
197-
'php.*' \
198-
'podman' \
199-
'powershell' \
200-
'skopeo' \
201-
'snapd' \
165+
local packages=(
166+
'.*-icon-theme$'
167+
'^aspnetcore-.*'
168+
'^dotnet-.*'
169+
'^java-*'
170+
'^libllvm.*'
171+
'^llvm-.*'
172+
'^mercurial.*'
173+
'^mysql-.*'
174+
'^vim.*'
175+
'^fonts-.*'
176+
'azure-cli'
177+
'buildah'
178+
'cpp-13'
179+
'firefox'
180+
'gcc-12'
181+
'gcc-13'
182+
'gcc-14'
183+
'gcc'
184+
'g++-14'
185+
'gfortran-14'
186+
'groff-base'
187+
'kubectl'
188+
'libgl1-mesa-dri'
189+
'microsoft-edge-stable'
190+
'php.*'
191+
'podman'
192+
'powershell'
193+
'skopeo'
194+
'snapd'
202195
'tmux'
196+
)
197+
198+
if isX86; then
199+
packages+=(
200+
'google-chrome-stable'
201+
'google-cloud-cli'
202+
)
203+
fi
204+
205+
sudo apt-get purge -y --autoremove --fix-missing "${packages[@]}"
203206

204207
echo "=> apt-get autoremove"
205208
sudo apt-get autoremove -y || echo "::warning::The command [sudo apt-get autoremove -y] failed"
@@ -215,28 +218,33 @@ cleanSwap() {
215218
}
216219

217220
removePythonPackages() {
218-
sudo pipx uninstall ansible-core
219-
}
220-
221-
# Display initial disk space stats
221+
local packages=(
222+
)
222223

223-
AVAILABLE_INITIAL=$(getAvailableSpace)
224+
if isX86; then
225+
packages+=(
226+
'ansible-core'
227+
)
228+
fi
224229

225-
printDF "BEFORE CLEAN-UP:"
226-
echo ""
230+
for p in "${packages[@]}"; do
231+
sudo pipx uninstall "$p"
232+
done
233+
}
227234

228-
execAndMeasureSpaceChange cleanPackages "Unused packages"
229-
execAndMeasureSpaceChange cleanSwap "Swap storage"
230-
execAndMeasureSpaceChange removeNodeModules "Node modules"
231-
execAndMeasureSpaceChange removePythonPackages "Python Packages"
235+
main() {
236+
printDF "BEFORE CLEAN-UP:"
237+
echo ""
232238

233-
removeUnusedDirsAndFiles
239+
execAndMeasure "Unused packages" cleanPackages
240+
execAndMeasure "Swap storage" cleanSwap
241+
execAndMeasure "Node modules" removeNodeModules
242+
execAndMeasure "Python Packages" removePythonPackages
234243

235-
# Output saved space statistic
236-
echo ""
237-
printDF "AFTER CLEAN-UP:"
244+
removeUnusedDirsAndFiles
238245

239-
echo ""
240-
echo ""
246+
printDF "AFTER CLEAN-UP:"
247+
echo ""
248+
}
241249

242-
printSavedSpace "$AVAILABLE_INITIAL" "Total saved"
250+
execAndMeasure "Total" main

0 commit comments

Comments
 (0)