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]