Arduino/compile-sketches action fails with "no space left on device" when compiling for ESP32

Hi there,

I am currently working on a little project and want to try to use the arduino/compile-sketches action to make sure my project is and keeps compatible with all the target platforms including ESP32. So, I wrote this workflow:

on: [push, pull_request]
jobs:
  compile:
    runs-on: ubuntu-latest
    timeout-minutes: 5
    strategy:
      matrix:
        fqbn: ['arduino:avr:nano', 'esp32:esp32:esp32']
    steps:
      - uses: actions/checkout@v7
      - uses: arduino/compile-sketches@v1
        with:
          fqbn: "${{ matrix.fqbn }}"
          sketch-paths: |
            - ./MC/
          platforms: |
            - name: esp32:esp32
              source-url: https://espressif.github.io/arduino-esp32/package_esp32_index.json
          libraries: |
            - name: HX711
            - name: TMC2209

As you can see, there are two target platforms and two libraries. When running this action, it fails with "no space left on device" (GitHub runners seem to have about 14 GB of disk space available). The logs:

2026-09-18T13:58:21.0349113Z ##[group]Action setup
2026-09-18T13:58:23.3528702Z creating virtual environment...
2026-09-18T13:58:23.5417724Z installing poetry from spec 'poetry==2.4.1'...
2026-09-18T13:58:30.7581675Z done! ✨ 🌟 ✨
2026-09-18T13:58:30.7582282Z   installed package poetry 2.4.1, installed using Python 3.12.4
2026-09-18T13:58:30.7590763Z   These apps are now available
2026-09-18T13:58:30.7600606Z     - poetry
2026-09-18T13:58:31.3353189Z Creating virtualenv non-package-mode-jE1jbGsw-py3.12 in /home/runner/.cache/pypoetry/virtualenvs
2026-09-18T13:58:31.8125005Z Installing dependencies from lock file
2026-09-18T13:58:31.9996780Z 
2026-09-18T13:58:31.9998430Z Package operations: 18 installs, 0 updates, 0 removals
2026-09-18T13:58:31.9999108Z 
2026-09-18T13:58:32.0003516Z   - Installing certifi (2024.7.4)
2026-09-18T13:58:32.0018507Z   - Installing cffi (2.0.0)
2026-09-18T13:58:32.0046943Z   - Installing charset-normalizer (3.1.0)
2026-09-18T13:58:32.0082859Z   - Installing cryptography (48.0.1)
2026-09-18T13:58:32.0084734Z   - Installing gitdb (4.0.10)
2026-09-18T13:58:32.0134235Z   - Installing gitpython (3.1.50)
2026-09-18T13:58:32.2875185Z   - Installing idna (3.15)
2026-09-18T13:58:32.3374510Z   - Installing pycparser (2.21)
2026-09-18T13:58:32.3950736Z   - Installing pygithub (2.9.1)
2026-09-18T13:58:32.4248896Z   - Installing pyjwt (2.13.0)
2026-09-18T13:58:32.4823063Z   - Installing pynacl (1.6.2)
2026-09-18T13:58:32.5140206Z   - Installing pyserial (3.5)
2026-09-18T13:58:32.5310127Z   - Installing pyyaml (6.0.3)
2026-09-18T13:58:32.5534485Z   - Installing requests (2.33.0)
2026-09-18T13:58:32.7013446Z   - Installing semver (3.0.4)
2026-09-18T13:58:32.7112366Z   - Installing smmap (5.0.0)
2026-09-18T13:58:32.7805769Z   - Installing typing-extensions (4.8.0)
2026-09-18T13:58:32.8131303Z   - Installing urllib3 (2.7.0)
2026-09-18T13:58:34.2518261Z ##[endgroup]
2026-09-18T13:58:34.2527379Z ##[end-action id=__arduino_compile-sketches.__run;outcome=success;conclusion=success;duration_ms=13240]
2026-09-18T13:58:34.2535064Z ##[start-action display=Run script;id=__arduino_compile-sketches.__run_2]
2026-09-18T13:58:34.2552210Z ##[group]Run # Run action
2026-09-18T13:58:34.2552486Z # Run action
2026-09-18T13:58:34.2552720Z poetry run \
2026-09-18T13:58:34.2553023Z   python compilesketches/compilesketches.py
2026-09-18T13:58:34.2590235Z shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
2026-09-18T13:58:34.2590612Z env:
2026-09-18T13:58:34.2590900Z   pythonLocation: /opt/hostedtoolcache/Python/3.12.4/x64
2026-09-18T13:58:34.2591377Z   PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.12.4/x64/lib/pkgconfig
2026-09-18T13:58:34.2591854Z   Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.4/x64
2026-09-18T13:58:34.2592270Z   Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.4/x64
2026-09-18T13:58:34.2592689Z   Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.4/x64
2026-09-18T13:58:34.2593108Z   LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.12.4/x64/lib
2026-09-18T13:58:34.2593484Z   INPUT_CLI-VERSION: latest
2026-09-18T13:58:34.2593750Z   INPUT_FQBN: esp32:esp32:esp32
2026-09-18T13:58:34.2594070Z   INPUT_LIBRARIES: - name: HX711
- name: TMC2209

2026-09-18T13:58:34.2594883Z   INPUT_PLATFORMS: - name: esp32:esp32
  source-url: https://espressif.github.io/arduino-esp32/package_esp32_index.json

2026-09-18T13:58:34.2595688Z   INPUT_SKETCH-PATHS: - ./MC/

2026-09-18T13:58:34.2595969Z   INPUT_CLI-COMPILE-FLAGS: 
2026-09-18T13:58:34.2596236Z   INPUT_VERBOSE: false
2026-09-18T13:58:34.2596470Z   INPUT_GITHUB-TOKEN: 
2026-09-18T13:58:34.2596724Z   INPUT_ENABLE-DELTAS-REPORT: false
2026-09-18T13:58:34.2597049Z   INPUT_ENABLE-WARNINGS-REPORT: false
2026-09-18T13:58:34.2597382Z   INPUT_SKETCHES-REPORT-PATH: sketches-reports
2026-09-18T13:58:34.2597706Z ##[endgroup]
2026-09-18T14:00:29.0193573Z ##[warning]You are running out of disk space. The runner will stop working when the machine runs out of disk space. Free space left: 48 MB
2026-09-18T14:00:31.6782000Z ##[group]Compiling sketch: MC/MyProject
2026-09-18T14:00:31.6799205Z Downloading platform arduino:avr@1.8.8...
2026-09-18T14:00:31.6803965Z 
2026-09-18T14:00:31.6804588Z Downloading index: package_index.tar.bz2 0 B / 109.52 KiB    0.00%
2026-09-18T14:00:31.6805695Z Downloading index: package_index.tar.bz2 downloaded
2026-09-18T14:00:31.6806273Z 
2026-09-18T14:00:31.6806479Z arduino:avr@1.8.8 0 B / 6.83 MiB    0.00%
2026-09-18T14:00:31.6806989Z arduino:avr@1.8.8 downloaded
2026-09-18T14:00:31.6807480Z Installing platform arduino:avr@1.8.8...
2026-09-18T14:00:31.6807984Z Downloading platform esp32:esp32@3.3.11...
2026-09-18T14:00:31.6808299Z 
2026-09-18T14:00:31.6808571Z Downloading index: package_index.tar.bz2 0 B / 109.52 KiB    0.00%
2026-09-18T14:00:31.6809022Z Downloading index: package_index.tar.bz2 downloaded
2026-09-18T14:00:31.7031161Z ##[error]No space left on device : '/home/runner/actions-runner/cached/2.337.0/_diag/pages/7106f729-44d9-44d2-adc7-a0a43e66d118_0ed36103-030c-4b70-8149-906fa833cd53_1.log'

Is the ESP32 repo too big? Is there anything we can do about this? We are not talking about a really heavy use case here, just a ~250 lines script, two platforms, two libraries. Thank you!

check the disk space on the runner

jobs:
  check-disk:
    runs-on: ubuntu-latest
    steps:
      - name: Check Initial Disk Usage
        run: |
          echo "    Overall Disk Space"
          df -h
          
          echo "    Top 10 Largest Directories"
          sudo du -hxd 1 / 2>/dev/null | sort -hr | head -n 10

then you can free some space Free Disk Space (Ubuntu) · Actions · GitHub Marketplace · GitHub

The linked action works just fine and reduces the used space by about 15 GB :flushed_face:

Thank you very much!