Skip to content

Commit 2d03d79

Browse files
authored
Rollup merge of rust-lang#136238 - marcoieni:free-disk-refactor, r=Kobzol
ci: refactor how directories are removed in free-disk-space disk
2 parents d4b4078 + 89de239 commit 2d03d79

File tree

1 file changed

+31
-15
lines changed

1 file changed

+31
-15
lines changed

Diff for: src/ci/scripts/free-disk-space.sh

+31-15
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
#!/bin/bash
2+
set -euo pipefail
23

34
# Free disk space on Linux GitHub action runners
45
# Script inspired by https://github.com/jlumbroso/free-disk-space
@@ -14,11 +15,15 @@ printSeparationLine() {
1415
# compute available space
1516
# REF: https://unix.stackexchange.com/a/42049/60849
1617
# REF: https://stackoverflow.com/a/450821/408734
17-
getAvailableSpace() { echo $(df -a | awk 'NR > 1 {avail+=$4} END {print avail}'); }
18+
getAvailableSpace() {
19+
df -a | awk 'NR > 1 {avail+=$4} END {print avail}'
20+
}
1821

1922
# make Kb human readable (assume the input is Kb)
2023
# REF: https://unix.stackexchange.com/a/44087/60849
21-
formatByteCount() { echo $(numfmt --to=iec-i --suffix=B --padding=7 $1'000'); }
24+
formatByteCount() {
25+
numfmt --to=iec-i --suffix=B --padding=7 "$1"'000'
26+
}
2227

2328
# macro to output saved space
2429
printSavedSpace() {
@@ -58,11 +63,27 @@ removeDir() {
5863
dir=${1}
5964

6065
local before
61-
before=$(getAvailableSpace)
66+
if [ ! -d "$dir" ]; then
67+
echo "::warning::Directory $dir does not exist, skipping."
68+
else
69+
before=$(getAvailableSpace)
70+
sudo rm -rf "$dir"
71+
printSavedSpace "$before" "Removed $dir"
72+
fi
73+
}
6274

63-
sudo rm -rf "$dir" || true
75+
removeUnusedDirectories() {
76+
local dirs_to_remove=(
77+
"/usr/local/lib/android"
78+
"/usr/share/dotnet"
6479

65-
printSavedSpace "$before" "$dir"
80+
# Haskell runtime
81+
"/usr/local/.ghcup"
82+
)
83+
84+
for dir in "${dirs_to_remove[@]}"; do
85+
removeDir "$dir"
86+
done
6687
}
6788

6889
execAndMeasureSpaceChange() {
@@ -101,9 +122,9 @@ cleanPackages() {
101122

102123
# Remove Docker images
103124
cleanDocker() {
104-
echo "Removing the following docker images:"
125+
echo "=> Removing the following docker images:"
105126
sudo docker image ls
106-
echo "Removing docker images..."
127+
echo "=> Removing docker images..."
107128
sudo docker image prune --all --force || true
108129
}
109130

@@ -121,17 +142,12 @@ AVAILABLE_INITIAL=$(getAvailableSpace)
121142
printDF "BEFORE CLEAN-UP:"
122143
echo ""
123144

124-
removeDir /usr/local/lib/android
125-
removeDir /usr/share/dotnet
126-
127-
# Haskell runtime
128-
removeDir /opt/ghc
129-
removeDir /usr/local/.ghcup
130-
131-
execAndMeasureSpaceChange cleanPackages "Large misc. packages"
145+
execAndMeasureSpaceChange cleanPackages "Unused packages"
132146
execAndMeasureSpaceChange cleanDocker "Docker images"
133147
execAndMeasureSpaceChange cleanSwap "Swap storage"
134148

149+
removeUnusedDirectories
150+
135151
# Output saved space statistic
136152
echo ""
137153
printDF "AFTER CLEAN-UP:"

0 commit comments

Comments
 (0)