Skip to content
Merged
Show file tree
Hide file tree
Changes from all 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
30 changes: 30 additions & 0 deletions .github/workflows/copilot-setup-steps.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,38 @@ 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

# Remove bin directory if it exists and create symlink to use the secondary disk
rm -rf ./bin
ln -s /mnt/bin ./bin

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

- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
Expand All @@ -25,6 +50,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
68 changes: 68 additions & 0 deletions .github/workflows/log-disk-space/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
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: |
MAX_LINES=20

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 -$MAX_LINES || true
echo ""
echo "=== Largest directories in /opt ==="
sudo du -h /opt 2>/dev/null | sort -rh | head -$MAX_LINES || true
echo ""
echo "=== Workspace breakdown (top level) ==="
du -h --max-depth=1 . 2>/dev/null | sort -rh || true
echo ""
echo "=== Workspace breakdown (2 levels deep) ==="
du -h --max-depth=2 . 2>/dev/null | sort -rh | head -$MAX_LINES || true
echo ""
echo "=== bin directory ==="
du -sh ./bin/* 2>/dev/null | sort -rh | head -$MAX_LINES || echo "No bin"
echo ""
echo "=== external directory ==="
du -sh ./external/* 2>/dev/null | sort -rh | head -$MAX_LINES || 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 || true
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