This is an automated email from the ASF dual-hosted git repository.

maxyang pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/cloudberry.git


The following commit(s) were added to refs/heads/main by this push:
     new 79d3a1f3dfd Fix CI failures due to insufficient disk space
79d3a1f3dfd is described below

commit 79d3a1f3dfd6635a13a9f184c485c8df606397e9
Author: Dianjin Wang <[email protected]>
AuthorDate: Sat Dec 27 17:49:43 2025 +0800

    Fix CI failures due to insufficient disk space
    
    This commit fixes the disk space issue in tests by:
    
    - Adding Docker volume mounts to expose host directories to containers,
      add removing some pre-installed tools from host, including:
      - GitHub Actions tool cache
      - Android SDK, .NET SDK, Haskell (GHC + GHCup), Swift
      - PowerShell, Chromium, Miniconda, Azure CLI, and Scala BUild Tool
    - Cleaning up RPM artifacts and source tarballs after extraction in the
      test job to reclaim additional space
    
    This approach frees ~30G of disk space per job, ensuring sufficient
    space for build and test operations.
---
 .github/workflows/build-cloudberry.yml | 107 +++++++++++++++++++++++++++++++++
 1 file changed, 107 insertions(+)

diff --git a/.github/workflows/build-cloudberry.yml 
b/.github/workflows/build-cloudberry.yml
index 1d529e21b11..76721d395ee 100644
--- a/.github/workflows/build-cloudberry.yml
+++ b/.github/workflows/build-cloudberry.yml
@@ -428,8 +428,33 @@ jobs:
       options: >-
         --user root
         -h cdw
+        -v /usr/share:/host_usr_share
+        -v /usr/local:/host_usr_local
+        -v /opt:/host_opt
 
     steps:
+      - name: Free Disk Space
+        if: needs.check-skip.outputs.should_skip != 'true'
+        run: |
+          echo "=== Disk space before cleanup ==="
+          df -h /
+
+          # Remove pre-installed tools from host to free disk space
+          rm -rf /host_opt/hostedtoolcache || true   # GitHub Actions tool 
cache
+          rm -rf /host_usr_local/lib/android || true # Android SDK
+          rm -rf /host_usr_share/dotnet || true      # .NET SDK
+          rm -rf /host_opt/ghc || true               # Haskell GHC
+          rm -rf /host_usr_local/.ghcup || true      # Haskell GHCup
+          rm -rf /host_usr_share/swift || true       # Swift
+          rm -rf /host_usr_local/share/powershell || true  # PowerShell
+          rm -rf /host_usr_local/share/chromium || true    # Chromium
+          rm -rf /host_usr_share/miniconda || true   # Miniconda
+          rm -rf /host_opt/az || true                # Azure CLI
+          rm -rf /host_usr_share/sbt || true         # Scala Build Tool
+
+          echo "=== Disk space after cleanup ==="
+          df -h /
+
       - name: Skip Check
         if: needs.check-skip.outputs.should_skip == 'true'
         run: |
@@ -707,8 +732,33 @@ jobs:
       options: >-
         --user root
         -h cdw
+        -v /usr/share:/host_usr_share
+        -v /usr/local:/host_usr_local
+        -v /opt:/host_opt
 
     steps:
+      - name: Free Disk Space
+        if: needs.check-skip.outputs.should_skip != 'true'
+        run: |
+          echo "=== Disk space before cleanup ==="
+          df -h /
+
+          # Remove pre-installed tools from host to free disk space
+          rm -rf /host_opt/hostedtoolcache || true   # GitHub Actions tool 
cache
+          rm -rf /host_usr_local/lib/android || true # Android SDK
+          rm -rf /host_usr_share/dotnet || true      # .NET SDK
+          rm -rf /host_opt/ghc || true               # Haskell GHC
+          rm -rf /host_usr_local/.ghcup || true      # Haskell GHCup
+          rm -rf /host_usr_share/swift || true       # Swift
+          rm -rf /host_usr_local/share/powershell || true  # PowerShell
+          rm -rf /host_usr_local/share/chromium || true    # Chromium
+          rm -rf /host_usr_share/miniconda || true   # Miniconda
+          rm -rf /host_opt/az || true                # Azure CLI
+          rm -rf /host_usr_share/sbt || true         # Scala Build Tool
+
+          echo "=== Disk space after cleanup ==="
+          df -h /
+
       - name: Skip Check
         if: needs.check-skip.outputs.should_skip == 'true'
         run: |
@@ -898,8 +948,33 @@ jobs:
         --ulimit core=-1
         --cgroupns=host
         -v /sys/fs/cgroup:/sys/fs/cgroup:rw
+        -v /usr/share:/host_usr_share
+        -v /usr/local:/host_usr_local
+        -v /opt:/host_opt
 
     steps:
+      - name: Free Disk Space
+        if: needs.check-skip.outputs.should_skip != 'true'
+        run: |
+          echo "=== Disk space before cleanup ==="
+          df -h /
+
+          # Remove pre-installed tools from host to free disk space
+          rm -rf /host_opt/hostedtoolcache || true   # GitHub Actions tool 
cache
+          rm -rf /host_usr_local/lib/android || true # Android SDK
+          rm -rf /host_usr_share/dotnet || true      # .NET SDK
+          rm -rf /host_opt/ghc || true               # Haskell GHC
+          rm -rf /host_usr_local/.ghcup || true      # Haskell GHCup
+          rm -rf /host_usr_share/swift || true       # Swift
+          rm -rf /host_usr_local/share/powershell || true  # PowerShell
+          rm -rf /host_usr_local/share/chromium || true    # Chromium
+          rm -rf /host_usr_share/miniconda || true   # Miniconda
+          rm -rf /host_opt/az || true                # Azure CLI
+          rm -rf /host_usr_share/sbt || true         # Scala Build Tool
+
+          echo "=== Disk space after cleanup ==="
+          df -h /
+
       - name: Skip Check
         if: needs.check-skip.outputs.should_skip == 'true'
         run: |
@@ -1233,6 +1308,22 @@ jobs:
             rpm -qi apache-cloudberry-db-incubating
           } 2>&1 | tee -a build-logs/details/rpm-installation.log
 
+          # Clean up downloaded RPM artifacts to free disk space
+          echo "=== Disk space before RPM cleanup ==="
+          echo "Human readable:"
+          df -kh /
+          echo "Exact KB:"
+          df -k /
+          echo "RPM artifacts size:"
+          du -sh "${GITHUB_WORKSPACE}"/rpm_build_artifacts || true
+          echo "Cleaning up RPM artifacts to free disk space..."
+          rm -rf "${GITHUB_WORKSPACE}"/rpm_build_artifacts
+          echo "=== Disk space after RPM cleanup ==="
+          echo "Human readable:"
+          df -kh /
+          echo "Exact KB:"
+          df -k /
+
       - name: Extract source tarball
         if: success() && needs.check-skip.outputs.should_skip != 'true'
         env:
@@ -1258,6 +1349,22 @@ jobs:
             du -sh "${SRC_DIR}/../cloudberry"
           } 2>&1 | tee -a build-logs/details/source-extraction.log
 
+          # Clean up source tarball to free disk space
+          echo "=== Disk space before source tarball cleanup ==="
+          echo "Human readable:"
+          df -kh /
+          echo "Exact KB:"
+          df -k /
+          echo "Source tarball artifacts size:"
+          du -sh "${GITHUB_WORKSPACE}"/source_build_artifacts || true
+          echo "Cleaning up source tarball to free disk space..."
+          rm -rf "${GITHUB_WORKSPACE}"/source_build_artifacts
+          echo "=== Disk space after source tarball cleanup ==="
+          echo "Human readable:"
+          df -kh /
+          echo "Exact KB:"
+          df -k /
+
       - name: Create Apache Cloudberry demo cluster
         if: success() && needs.check-skip.outputs.should_skip != 'true'
         env:


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to