blob: ffb8db563ffd3375e80a8ab4631e0c28dc96f780 [file]
#!/usr/bin/env bash
#
# Print a disk-status snapshot for use as a CI checkpoint:
# Also exports AVAIL_GB (available space in GB
echo "=== Disk space ==="
df -h "$GITHUB_WORKSPACE" || true
# Also show the Windows system drive (C:) for reference. The build runs on the
# workspace drive (D: on Windows, / on Linux), so that is what we measure below.
if [[ "$RUNNER_OS" == "Windows" ]]; then df -h /c || true; fi
# Available space on the drive the build actually uses (the workspace).
AVAIL_GB=$(df -k "$GITHUB_WORKSPACE" | awk 'NR==2 {printf "%.0f", $4/1024/1024}')
if ! [[ "$AVAIL_GB" =~ ^[0-9]+$ ]]; then
echo "::error::Could not determine available disk space (got: '${AVAIL_GB}')"
AVAIL_GB=0
fi
export AVAIL_GB
echo "Available: ${AVAIL_GB}GB"
if [[ "$RUNNER_OS" == "Windows" ]]; then
external="/d/b/external"
repos="/d/b-repo"
bazelisk="/c/Users/runneradmin/AppData/Local/bazelisk"
else
external="$HOME/.bazel/external"
repos="$HOME/.cache/bazel-repo"
bazelisk="$HOME/.cache/bazelisk"
fi
echo "=== Bazel cache sizes ==="
cache_size() {
local label="$1" path="$2"
if [ -d "$path" ]; then
local size
size=$(du -sh "$path" 2>/dev/null | awk '{print $1}')
printf " %-25s %s\n" "${label}:" "$size"
else
printf " %-25s (not present)\n" "${label}:"
fi
}
cache_size "External" "$external"
if [ -d "$repos" ]; then
for sub in "$repos"/*/; do
[ -d "$sub" ] || continue
case "$(basename "$sub")" in
content_addressable) label="Repository Cache" ;;
contents) label="Repo Contents Cache" ;;
*) label="Repository/$(basename "$sub")" ;;
esac
cache_size "$label" "$sub"
done
else
cache_size "Repository Cache" "$repos"
fi
cache_size "Bazelisk" "$bazelisk"