Skip to content

Commit 62bdbc1

Browse files
committed
Replace usage of free-disk-space github action with free-disk-space script
1 parent 957a266 commit 62bdbc1

File tree

2 files changed

+32
-19
lines changed

2 files changed

+32
-19
lines changed

.github/workflows/ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ jobs:
109109
# intensive jobs to run on free runners, which however also have
110110
# less disk space.
111111
- name: free up disk space
112-
uses: jlumbroso/free-disk-space@54081f138730dfa15788a46383842cd2f914a1be
112+
run: src/ci/scripts/free-disk-space.sh
113113
if: matrix.free_disk
114114

115115
# Rust Log Analyzer can't currently detect the PR number of a GitHub

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

Lines changed: 31 additions & 18 deletions
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() {
@@ -23,11 +35,10 @@ printSeparationLine() {
2335
# macro to compute available space
2436
# REF: https://unix.stackexchange.com/a/42049/60849
2537
# REF: https://stackoverflow.com/a/450821/408734
26-
getAvailableSpace() { df -a "$1" | awk 'NR > 1 {avail+=$4} END {print avail}'; }
27-
38+
getAvailableSpace() { echo $(df -a $1 | awk 'NR > 1 {avail+=$4} END {print avail}'); }
2839
# macro to make Kb human readable (assume the input is Kb)
2940
# REF: https://unix.stackexchange.com/a/44087/60849
30-
formatByteCount() { numfmt --to=iec-i --suffix=B --padding=7 "$1"'000'; }
41+
formatByteCount() { echo $(numfmt --to=iec-i --suffix=B --padding=7 $1'000'); }
3142

3243
# macro to output saved space
3344
printSavedSpace() {
@@ -80,7 +91,7 @@ echo ""
8091
# Remove Android library
8192
BEFORE=$(getAvailableSpace)
8293

83-
sudo rm -rf /usr/local/lib/android || true
94+
fast_rmdir /usr/local/lib/android || true
8495

8596
AFTER=$(getAvailableSpace)
8697
SAVED=$((AFTER-BEFORE))
@@ -91,7 +102,7 @@ printSavedSpace $SAVED "Android library"
91102
BEFORE=$(getAvailableSpace)
92103

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

96107
AFTER=$(getAvailableSpace)
97108
SAVED=$((AFTER-BEFORE))
@@ -100,8 +111,8 @@ printSavedSpace $SAVED ".NET runtime"
100111
# Remove Haskell runtime
101112
BEFORE=$(getAvailableSpace)
102113

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

106117
AFTER=$(getAvailableSpace)
107118
SAVED=$((AFTER-BEFORE))
@@ -112,17 +123,19 @@ printSavedSpace $SAVED "Haskell runtime"
112123

113124
BEFORE=$(getAvailableSpace)
114125

115-
sudo apt-get remove -y '^aspnetcore-.*' || echo "::warning::The command [sudo apt-get remove -y '^aspnetcore-.*'] failed to complete successfully. Proceeding..."
116-
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..."
117-
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..."
118-
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..."
119-
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..."
120-
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..."
121-
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..."
122-
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..."
123-
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..."
124-
sudo apt-get autoremove -y || echo "::warning::The command [sudo apt-get autoremove -y] failed to complete successfully. Proceeding..."
125-
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..."
126139

127140
AFTER=$(getAvailableSpace)
128141
SAVED=$((AFTER-BEFORE))

0 commit comments

Comments
 (0)