From 9b88192bb94156d4637adfb701589246e644d565 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fabiano=20Fid=C3=AAncio?= Date: Mon, 8 Sep 2025 17:06:31 +0200 Subject: [PATCH] tests: k8s: kata-deploy: Remove unnecessary dirs to free up space MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This is following Steve's suggestion, based on what's been done on cloud-api-adaptor ... however, we're basically copying the following actions: https://github.com/endersonmenezes/free-disk-space I'm doing this as kata-containers repo doesn't allow to use third-party actions. The action is licensed as MIT, which is compatible with our Apache licene, allowing us to do the copy without issues. Signed-off-by: Fabiano FidĂȘncio --- .github/workflows/run-k8s-tests-on-amd64.yaml | 79 +++++++++++++++++++ .github/workflows/run-kata-deploy-tests.yaml | 79 +++++++++++++++++++ 2 files changed, 158 insertions(+) diff --git a/.github/workflows/run-k8s-tests-on-amd64.yaml b/.github/workflows/run-k8s-tests-on-amd64.yaml index 6f4b981f9b..50129da195 100644 --- a/.github/workflows/run-k8s-tests-on-amd64.yaml +++ b/.github/workflows/run-k8s-tests-on-amd64.yaml @@ -72,6 +72,85 @@ jobs: env: TARGET_BRANCH: ${{ inputs.target-branch }} + - name: Free Disk Space + run: | + echo "Removing Android Folder" + # Remove Android SDK directories (common locations) + sudo rm -rf /usr/local/lib/android || true + sudo rm -rf /opt/android || true + sudo rm -rf /usr/local/android-sdk || true + sudo rm -rf /home/runner/Android || true + + # Remove Android packages if they exist + ANDROID_PACKAGES=$(dpkg -l | grep -E "^ii.*(android|adb)" | awk '{print $2}' | tr '\n' ' ' || true) + if [[ -n "${ANDROID_PACKAGES}" ]]; then + echo "Removing Android packages: ${ANDROID_PACKAGES}" + sudo apt-get remove -y "${ANDROID_PACKAGES}" --fix-missing > /dev/null 2>&1 || true + sudo apt-get autoremove -y > /dev/null 2>&1 || true + sudo apt-get clean > /dev/null 2>&1 || true + fi + echo "-" + + echo "Removing .NET Folder" + # Remove .NET installation directories + sudo rm -rf /usr/share/dotnet || true + + # Remove .NET documentation directories + sudo rm -rf /usr/share/doc/dotnet-* || true + + # Remove .NET packages if they exist + DOTNET_PACKAGES=$(dpkg -l | grep -E "^ii.*dotnet" | awk '{print $2}' | tr '\n' ' ' || true) + if [[ -n "${DOTNET_PACKAGES}" ]]; then + echo "Removing .NET packages: ${DOTNET_PACKAGES}" + sudo apt-get remove -y "${DOTNET_PACKAGES}" --fix-missing > /dev/null 2>&1 || true + sudo apt-get autoremove -y > /dev/null 2>&1 || true + sudo apt-get clean > /dev/null 2>&1 || true + fi + echo "-" + + echo "Removing Haskell Folder" + # Remove Haskell directories + sudo rm -rf /opt/ghc || true + sudo rm -rf /usr/local/.ghcup || true + sudo rm -rf /opt/cabal || true + sudo rm -rf /home/runner/.ghcup || true + sudo rm -rf /home/runner/.cabal || true + + # Remove Haskell packages if they exist + HASKELL_PACKAGES=$(dpkg -l | grep -E "^ii.*(ghc|haskell|cabal)" | awk '{print $2}' | tr '\n' ' ' || true) + if [[ -n "${HASKELL_PACKAGES}" ]]; then + echo "Removing Haskell packages: ${HASKELL_PACKAGES}" + sudo apt-get remove -y "${HASKELL_PACKAGES}" --fix-missing > /dev/null 2>&1 || true + sudo apt-get autoremove -y > /dev/null 2>&1 || true + sudo apt-get clean > /dev/null 2>&1 || true + fi + echo "-" + + echo "Removing Tool Cache" + sudo rm -rf "${AGENT_TOOLSDIRECTORY}" || true + echo "-" + + echo "Removing Swap Storage" + sudo swapoff -a || true + sudo rm -f "/mnt/swapfile" || true + echo "Removed Swap Storage" + echo "-" + + sudo apt-get remove -y azure-cli google-cloud-cli microsoft-edge-stable google-chrome-stable firefox postgresql* temurin-* *llvm* mysql* dotnet-sdk-* --fix-missing > /dev/null + sudo apt-get autoremove -y > /dev/null + sudo apt-get clean > /dev/null + + sudo rm -rf /usr/share/swift + sudo rm -rf /usr/share/miniconda + sudo rm -rf /usr/share/az* + sudo rm -rf /usr/local/lib/node_modules + sudo rm -rf /usr/local/share/chromium + sudo rm -rf /usr/local/share/powershell + sudo rm -rf /usr/local/julia + sudo rm -rf /usr/local/aws-cli + sudo rm -rf /usr/local/aws-sam-cli + sudo rm -rf /usr/share/gradle + - name: Configure CRI-O if: matrix.container_runtime == 'crio' run: bash tests/integration/kubernetes/gha-run.sh setup-crio diff --git a/.github/workflows/run-kata-deploy-tests.yaml b/.github/workflows/run-kata-deploy-tests.yaml index e793cbb422..5fa64c1fe8 100644 --- a/.github/workflows/run-kata-deploy-tests.yaml +++ b/.github/workflows/run-kata-deploy-tests.yaml @@ -58,6 +58,85 @@ jobs: env: TARGET_BRANCH: ${{ inputs.target-branch }} + - name: Free Disk Space + run: | + echo "Removing Android Folder" + # Remove Android SDK directories (common locations) + sudo rm -rf /usr/local/lib/android || true + sudo rm -rf /opt/android || true + sudo rm -rf /usr/local/android-sdk || true + sudo rm -rf /home/runner/Android || true + + # Remove Android packages if they exist + ANDROID_PACKAGES=$(dpkg -l | grep -E "^ii.*(android|adb)" | awk '{print $2}' | tr '\n' ' ' || true) + if [[ -n "${ANDROID_PACKAGES}" ]]; then + echo "Removing Android packages: ${ANDROID_PACKAGES}" + sudo apt-get remove -y "${ANDROID_PACKAGES}" --fix-missing > /dev/null 2>&1 || true + sudo apt-get autoremove -y > /dev/null 2>&1 || true + sudo apt-get clean > /dev/null 2>&1 || true + fi + echo "-" + + echo "Removing .NET Folder" + # Remove .NET installation directories + sudo rm -rf /usr/share/dotnet || true + + # Remove .NET documentation directories + sudo rm -rf /usr/share/doc/dotnet-* || true + + # Remove .NET packages if they exist + DOTNET_PACKAGES=$(dpkg -l | grep -E "^ii.*dotnet" | awk '{print $2}' | tr '\n' ' ' || true) + if [[ -n "${DOTNET_PACKAGES}" ]]; then + echo "Removing .NET packages: ${DOTNET_PACKAGES}" + sudo apt-get remove -y "${DOTNET_PACKAGES}" --fix-missing > /dev/null 2>&1 || true + sudo apt-get autoremove -y > /dev/null 2>&1 || true + sudo apt-get clean > /dev/null 2>&1 || true + fi + echo "-" + + echo "Removing Haskell Folder" + # Remove Haskell directories + sudo rm -rf /opt/ghc || true + sudo rm -rf /usr/local/.ghcup || true + sudo rm -rf /opt/cabal || true + sudo rm -rf /home/runner/.ghcup || true + sudo rm -rf /home/runner/.cabal || true + + # Remove Haskell packages if they exist + HASKELL_PACKAGES=$(dpkg -l | grep -E "^ii.*(ghc|haskell|cabal)" | awk '{print $2}' | tr '\n' ' ' || true) + if [[ -n "${HASKELL_PACKAGES}" ]]; then + echo "Removing Haskell packages: ${HASKELL_PACKAGES}" + sudo apt-get remove -y "${HASKELL_PACKAGES}" --fix-missing > /dev/null 2>&1 || true + sudo apt-get autoremove -y > /dev/null 2>&1 || true + sudo apt-get clean > /dev/null 2>&1 || true + fi + echo "-" + + echo "Removing Tool Cache" + sudo rm -rf "${AGENT_TOOLSDIRECTORY}" || true + echo "-" + + echo "Removing Swap Storage" + sudo swapoff -a || true + sudo rm -f "/mnt/swapfile" || true + echo "Removed Swap Storage" + echo "-" + + sudo apt-get remove -y azure-cli google-cloud-cli microsoft-edge-stable google-chrome-stable firefox postgresql* temurin-* *llvm* mysql* dotnet-sdk-* --fix-missing > /dev/null + sudo apt-get autoremove -y > /dev/null + sudo apt-get clean > /dev/null + + sudo rm -rf /usr/share/swift + sudo rm -rf /usr/share/miniconda + sudo rm -rf /usr/share/az* + sudo rm -rf /usr/local/lib/node_modules + sudo rm -rf /usr/local/share/chromium + sudo rm -rf /usr/local/share/powershell + sudo rm -rf /usr/local/julia + sudo rm -rf /usr/local/aws-cli + sudo rm -rf /usr/local/aws-sam-cli + sudo rm -rf /usr/share/gradle + - name: Deploy ${{ matrix.k8s }} run: bash tests/functional/kata-deploy/gha-run.sh deploy-k8s