aws-samples / aws-samples/sample-autonomous-cloud-coding-agents

perf(ci): investigate Free Disk Space step — 47-67% of pre-build overhead — follow-up to #363

Open
#685 0 comments 0 reactions 0 assignees View on GitHub
ci-cd enhancement
Dominant language
TypeScript
Stars
143
Forks
46
Avg merge
3d 9h
Merged PRs (30d)
20

Description

Parent: #363 (build-performance umbrella). Surfaced by the measured re-review of PR #364 (@theagenticguy); **needs maintainer `approved` before implementation (ADR-003)**.

## Finding — the dominant, addressable pre-build cost
From authoritative per-step timings (`gh api repos/.../actions/jobs/` `.steps[].started_at/completed_at`, not log arithmetic), the **`Free Disk Space` step is 47–67% of the entire job-start → build pre-work**:

| Run | job | `Free Disk Space` | job start → build | share |
|---|---|---|---|---|
| `30412723686` | `90452344735` | **148s** | 220s | 67% |
| `30419878840` | `90474296240` | **97s** | 179s | 54% |
| `30418865914` | `90471207016` | **75s** | 158s | 47% |

One `sudo rm -rf` step is roughly half the per-job overhead that the shard math (#675) treats as irreducible. It also **deletes `/opt/hostedtoolcache`**, after which `Setup Node.js` re-downloads Node 22.23.1 (`Acquiring 22.23.1 … Adding to the cache`) — only ~4–5s, so a *smell* rather than a cost, but the step pays ~100s to delete a tool cache it immediately needs part of back.

## Scope — run the experiment the doc's own measurement protocol demands
- **Not** claiming the step is unnecessary — no `ENOSPC` evidence was seen in sampled logs, and absence of evidence is not proof the build fits without it.
- Experiment: drop the step (or narrow it to `/usr/local/lib/android` + `/usr/share/dotnet`, **keeping `/opt/hostedtoolcache`**), then report **peak disk** and **4-core wall time before/after** with run IDs.
- If safe, this is the single highest-value CI change measured so far.

## Why it leads
Cutting this drops `fixed_overhead` from ~120–220s toward **~60–100s** — which is the one change that could make sharding (#675) worth re-costing *before* its ~250s trigger fires. So it sequences ahead of everything else.

## Sequence (see re-ranked comment on #363)
**#(this) Free Disk Space → #677 runner → #678 path-filter → #676 coverage → #684 cache-investigation → #675 shard (deferred).**

Refs #363

Contributor guide

Open the contributing guide

Research direction

Start with the GitHub Actions job's `Free Disk Space` step and use `gh api repos/.../actions/jobs/` to inspect authoritative step timings for the cited runs. Test dropping the step or narrowing it to `/usr/local/lib/android` and `/usr/share/dotnet` while keeping `/opt/hostedtoolcache`; done means reporting peak disk and 4-core wall time before and after with run IDs.

Written by the indexing model from the issue text.

Assessment

Tech stack
github-actions, shell
Domain
ci-cd, performance
Issue type
Refactor
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.