Skip to content

Commit 5c990ab

Browse files
author
Alex J Lennon
committed
ci(zephyr-e2e): avoid disk exhaustion on GitHub runners
- Remove dotnet/android/boost images to free space - Build rsgdb in debug (no release LTO) and set RSGDB to target/debug/rsgdb - Build rsgdb before west update so peak usage is lower - Document debug binary in CONTRIBUTING Made-with: Cursor
1 parent 98a2fb9 commit 5c990ab

2 files changed

Lines changed: 15 additions & 4 deletions

File tree

.github/workflows/zephyr-e2e.yml

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,12 @@ jobs:
4040
steps:
4141
- uses: actions/checkout@v4
4242

43+
# Runners are ~14GB; Zephyr west tree + SDK + release+LTO can exhaust disk.
44+
- name: Free disk space (remove unused CI images)
45+
run: |
46+
sudo rm -rf /usr/share/dotnet /usr/local/lib/android /usr/local/share/boost
47+
df -h
48+
4349
- name: Install host packages (Zephyr host + gdb stack)
4450
run: |
4551
sudo apt-get update
@@ -65,6 +71,12 @@ jobs:
6571
6672
- uses: dtolnay/rust-toolchain@stable
6773

74+
# Debug build only: release profile uses LTO + huge rmeta intermediates and fills the disk.
75+
- name: Build rsgdb (debug)
76+
env:
77+
CARGO_INCREMENTAL: "0"
78+
run: cargo build --verbose
79+
6880
- name: Cache Zephyr SDK
6981
id: zephyr-sdk-cache
7082
uses: actions/cache@v4
@@ -103,8 +115,7 @@ jobs:
103115
fi
104116
west update
105117
106-
- name: Build rsgdb (release)
107-
run: cargo build --release --verbose
108-
109118
- name: Run Zephyr native_sim E2E
119+
env:
120+
RSGDB: ${{ github.workspace }}/target/debug/rsgdb
110121
run: ./scripts/e2e_zephyr_native_sim.sh

CONTRIBUTING.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ RUN_E2E_ZEPHYR_NATIVE=1 ./scripts/validate_local.sh
101101
### GitHub Actions (optional E2E parity)
102102

103103
- **GDB smoke** — the **CI** workflow includes an Ubuntu job that runs `scripts/e2e_gdb_smoke.sh` after `cargo build --release` (same idea as `RUN_E2E_GDB=1` with `validate_local.sh`, without duplicating fmt/clippy/doc in that job).
104-
- **Zephyr `native_sim`** — the **Zephyr E2E** workflow (`.github/workflows/zephyr-e2e.yml`) provisions a cached west workspace, then runs `scripts/e2e_zephyr_native_sim.sh`. It runs when `scripts/e2e_zephyr_native_sim.sh` or `scripts/zephyr_multi_printf_app/` change, on pushes to `main`/`develop` for those paths, on a weekly schedule, and via **workflow_dispatch** (Actions → Zephyr E2E → Run workflow). This mirrors `RUN_E2E_ZEPHYR_NATIVE=1` locally without checking a Zephyr tree into this repo.
104+
- **Zephyr `native_sim`** — the **Zephyr E2E** workflow (`.github/workflows/zephyr-e2e.yml`) provisions a cached west workspace, then runs `scripts/e2e_zephyr_native_sim.sh`. It runs when `scripts/e2e_zephyr_native_sim.sh` or `scripts/zephyr_multi_printf_app/` change, on pushes to `main`/`develop` for those paths, on a weekly schedule, and via **workflow_dispatch** (Actions → Zephyr E2E → Run workflow). This mirrors `RUN_E2E_ZEPHYR_NATIVE=1` locally without checking a Zephyr tree into this repo. The workflow builds **`target/debug/rsgdb`** (not release) and frees some preinstalled SDKs on the runner so the job fits on the GitHub-hosted disk.
105105

106106
### Issue tracking
107107

0 commit comments

Comments
 (0)