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

Ouverte
#685 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
ci-cd enhancement
Langage dominant
TypeScript
Étoiles
143
Forks
46
Merge moyen
3 j 10 h
PR mergées (30 j)
24

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

Guide de contribution

Ouvrir le guide de contribution

Piste de recherche

Commencez par l’étape `Free Disk Space` du job GitHub Actions et utilisez `gh api repos/.../actions/jobs/` pour inspecter les durées d’étape faisant autorité pour les exécutions citées. Testez la suppression de l’étape ou sa limitation à `/usr/local/lib/android` et `/usr/share/dotnet`, tout en conservant `/opt/hostedtoolcache` ; le travail est considéré comme terminé lorsque le pic d’utilisation du disque et le temps d’exécution sur 4 cœurs avant et après sont indiqués avec les identifiants des exécutions.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
github-actions, shell
Domaine
ci-cd, performance
Type d'issue
Refactorisation
Difficulté
4/5
Temps estimé
3-5 jours
Activité
Calme
Clarté
Plutôt claire
Accessibilité débutants
45/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.