1*0960b676SJerome Forissier#!/bin/bash 2*0960b676SJerome Forissier# SPDX-License-Identifier: Apache-2.0 3*0960b676SJerome Forissier# 4*0960b676SJerome Forissier# This helper script is used in CI to free disk space on the runner 5*0960b676SJerome Forissier# 6*0960b676SJerome Forissierecho "Disk usage before cleanup:" 7*0960b676SJerome Forissierdf -h 8*0960b676SJerome Forissier 9*0960b676SJerome Forissierecho "Removing unnecessary packages" 10*0960b676SJerome Forissierpackages=( 11*0960b676SJerome Forissiergoogle-chrome-stable microsoft-edge-stable firefox 12*0960b676SJerome Forissierazure-cli google-cloud-cli kubectl podman skopeo buildah snapd 13*0960b676SJerome Forissiertemurin-8-jdk temurin-11-jdk temurin-17-jdk temurin-21-jdk 14*0960b676SJerome Forissierdotnet-sdk-8.0 dotnet-runtime-8.0 aspnetcore-runtime-8.0 15*0960b676SJerome Forissieraspnetcore-targeting-pack-8.0 netstandard-targeting-pack-2.1-8.0 16*0960b676SJerome Forissierdotnet-targeting-pack-8.0 17*0960b676SJerome Forissierllvm-16-dev llvm-17-dev llvm-18-dev 18*0960b676SJerome Forissierclang-tools-16 clang-tools-17 clang-tools-18 19*0960b676SJerome Forissierclang-tidy-16 clang-tidy-17 clang-tidy-18 20*0960b676SJerome Forissier) 21*0960b676SJerome Forissierfor pkg in "${packages[@]}"; do 22*0960b676SJerome Forissier echo -n "$pkg is " 23*0960b676SJerome Forissier if dpkg-query -W -f='${Package}\n' $pkg 2>/dev/null | grep -q .; then 24*0960b676SJerome Forissier to_remove="$to_remove $pkg" 25*0960b676SJerome Forissier found=1 26*0960b676SJerome Forissier else 27*0960b676SJerome Forissier echo -n "not " 28*0960b676SJerome Forissier fi 29*0960b676SJerome Forissier echo "installed" 30*0960b676SJerome Forissierdone 31*0960b676SJerome Forissierif [ "$found" ]; then 32*0960b676SJerome Forissier sudo apt-get remove -y --purge --allow-change-held-packages \ 33*0960b676SJerome Forissier --allow-remove-essential --no-install-recommends \ 34*0960b676SJerome Forissier $to_remove || true 35*0960b676SJerome Forissierfi 36*0960b676SJerome Forissiersudo apt-get autoremove -y || true 37*0960b676SJerome Forissiersudo apt-get clean || true 38*0960b676SJerome Forissier 39*0960b676SJerome Forissierecho "Removing more unnecessary files" 40*0960b676SJerome Forissiersudo rm -rf /usr/local/lib/android /usr/share/dotnet /opt/hostedtoolcache 41*0960b676SJerome Forissier 42*0960b676SJerome Forissierecho "Disk usage after cleanup:" 43*0960b676SJerome Forissierdf -h 44