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)
1022printSeparationLine () {
@@ -79,7 +91,7 @@ echo ""
7991# Remove Android library
8092BEFORE=$( getAvailableSpace)
8193
82- sudo rm -rf /usr/local/lib/android || true
94+ fast_rmdir /usr/local/lib/android || true
8395
8496AFTER=$( getAvailableSpace)
8597SAVED=$(( AFTER- BEFORE))
@@ -90,7 +102,7 @@ printSavedSpace $SAVED "Android library"
90102BEFORE=$( 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
95107AFTER=$( getAvailableSpace)
96108SAVED=$(( AFTER- BEFORE))
@@ -99,8 +111,8 @@ printSavedSpace $SAVED ".NET runtime"
99111# Remove Haskell runtime
100112BEFORE=$( 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
105117AFTER=$( getAvailableSpace)
106118SAVED=$(( AFTER- BEFORE))
@@ -121,6 +133,21 @@ sudo apt-get remove -y azure-cli google-chrome-stable firefox powershell mono-de
121133sudo 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..."
122134sudo 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..."
123135sudo apt-get autoremove -y || echo " ::warning::The command [sudo apt-get autoremove -y] failed to complete successfully. Proceeding..."
136+
137+ pkgs=$( list_installed_dpkg ' aspnetcore-*' ' dotnet-*' ' llvm-*' ' *php*' ' mongodb-*' ' mysql-*' azure-cli google-chrome-stable firefox powershell mono-devel libgl1-mesa-dri ' google-cloud-*' ' gcloud-*' || true)
138+ gcloud_prerm=' #!/bin/sh
139+ echo $0
140+ if [ -d "/usr/lib/google-cloud-sdk" ]; then
141+ echo "Cleaning Google Cloud CLI files..."
142+ find /usr/lib/google-cloud-sdk -type f -delete -print | wc -l
143+ rm -rf /usr/lib/google-cloud-sdk
144+ echo "Cleaning Google Cloud CLI manuals..."
145+ find /usr/share/man -type f -name "gcloud*" -delete -print | wc -l
146+ fi'
147+ echo " $gcloud_prerm " | sudo tee /var/lib/dpkg/info/google-cloud-cli-anthoscli.prerm > /dev/null
148+ echo " $gcloud_prerm " | sudo tee /var/lib/dpkg/info/google-cloud-cli.prerm > /dev/null
149+ sudo apt-get remove --autoremove -y $pkgs || echo " ::warning::The command [sudo apt-get remove -y] failed to complete successfully. Proceeding..."
150+
124151sudo apt-get clean || echo " ::warning::The command [sudo apt-get clean] failed to complete successfully. Proceeding..."
125152
126153AFTER=$( getAvailableSpace)
@@ -142,7 +169,7 @@ printSavedSpace $SAVED "Docker images"
142169
143170BEFORE=$( getAvailableSpace)
144171
145- sudo rm -rf " $AGENT_TOOLSDIRECTORY " || true
172+ fast_rmdir " $AGENT_TOOLSDIRECTORY " || true
146173
147174AFTER=$( getAvailableSpace)
148175SAVED=$(( AFTER- BEFORE))
@@ -153,7 +180,7 @@ printSavedSpace $SAVED "Tool cache"
153180BEFORE=$( getAvailableSpace)
154181
155182sudo swapoff -a || true
156- sudo rm -f /mnt/swapfile || true
183+ fast_rmdir /mnt/swapfile || true
157184free -h
158185
159186AFTER=$( getAvailableSpace)
0 commit comments