Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 29 additions & 0 deletions .github/workflows/copilot-setup-steps.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,37 @@ jobs:
copilot-setup-steps:
runs-on: ubuntu-latest
timeout-minutes: 120
env:
AndroidToolchainCacheDirectory: /mnt/android-archives
AndroidToolchainDirectory: /mnt/android-toolchain

steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
submodules: recursive

- name: Log disk space (after checkout)
uses: ./.github/workflows/log-disk-space

- name: Setup build directories on secondary disk
run: |
echo "Setting up Android toolchain on /mnt (secondary disk with 66G+ free)"

# Create directories with sudo and set ownership
sudo mkdir -p /mnt/android-archives
sudo mkdir -p /mnt/android-toolchain
sudo mkdir -p /mnt/bin
sudo chown $USER:$USER /mnt/android-archives /mnt/android-toolchain /mnt/bin

# Create symlink for bin to use the secondary disk
ln -s /mnt/bin ./bin

echo "Android toolchain directories configured:"
ls -la /mnt
ls -la | grep bin
df -h /mnt

- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
Expand All @@ -25,6 +49,11 @@ jobs:
make jenkins PREPARE_CI=1 PREPARE_AUTOPROVISION=1 CONFIGURATION=Debug
timeout-minutes: 60

- name: Log disk space (after android build)
uses: ./.github/workflows/log-disk-space
with:
detailed: 'true'

- name: Upload logs
uses: actions/upload-artifact@v4
if: steps.android-build.outcome == 'failure'
Expand Down
66 changes: 66 additions & 0 deletions .github/workflows/log-disk-space/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
name: Log Disk Space
description: Logs disk space usage on the runner
inputs:
detailed:
description: 'Whether to include detailed disk analysis (true/false)'
required: false
default: 'false'
runs:
using: composite
steps:
- name: Display disk space
shell: bash
run: |
echo "=== Disk Space Usage ==="
df -h
echo ""
echo "=== Inode Usage ==="
df -i
echo ""
echo "=== Disk Usage Summary ==="
df -h / | tail -1 | awk '{print "Used: " $3 " / " $2 " (" $5 " full)"}'
echo ""
echo "=== /mnt disk info ==="
echo "Permissions:"
ls -la / | grep mnt
echo "Contents:"
ls -la /mnt 2>/dev/null || echo "/mnt is empty or not accessible"
echo "Disk usage:"
df -h /mnt

# Detailed analysis if requested
if [ "${{ inputs.detailed }}" = "true" ]; then
echo ""
echo "=== DETAILED ANALYSIS ==="
echo ""
echo "=== Largest directories in /home/runner ==="
sudo du -h /home/runner 2>/dev/null | sort -rh | head -20
echo ""
echo "=== Largest directories in /opt ==="
sudo du -h /opt 2>/dev/null | sort -rh | head -20
echo ""
echo "=== Workspace breakdown (top level) ==="
du -h --max-depth=1 . 2>/dev/null | sort -rh
echo ""
echo "=== Workspace breakdown (2 levels deep) ==="
du -h --max-depth=2 . 2>/dev/null | sort -rh | head -30
echo ""
echo "=== bin directory ==="
du -sh ./bin/* 2>/dev/null | sort -rh | head -20 || echo "No bin"
echo ""
echo "=== external directory ==="
du -sh ./external/* 2>/dev/null | sort -rh | head -20 || echo "No external"
echo ""
echo "=== Android toolchain directories ==="
du -sh /mnt/android-archives 2>/dev/null || echo "No android-archives"
du -sh /mnt/android-toolchain 2>/dev/null || echo "No android-toolchain"
echo ""
echo "=== /mnt disk usage ==="
du -h --max-depth=1 /mnt 2>/dev/null | sort -rh
echo ""
echo "=== Docker usage ==="
docker system df 2>/dev/null || echo "Docker not available"
echo ""
echo "=== Temp directories ==="
du -sh /tmp /var/tmp 2>/dev/null || true
fi
Loading