asw/archive/examples-legacy/charts/ba-build-metrics.html
exe.dev user e47a9f4401 asw-v01: archive deferred content (packs, site, lab, legacy examples)
- 2.1: packs/ -> archive/packs/
- 2.2: site/ -> archive/site/
- 2.3: src/lab/ -> archive/lab/
- 2.4: examples/ -> archive/examples-legacy/ (SSI-based)
2026-06-07 10:39:21 +02:00

156 lines
5.8 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!doctype html>
<html lang="en">
<head>
<!--#include virtual="/_include/head.html" -->
<title>Build Pipeline Metrics — ASW Examples</title>
<meta name="description" content="CI/CD pipeline performance — build
time breakdown, weekly success rate, failure counts by repo">
</head>
<body>
<!--#include virtual="/_include/nav.html" -->
<main>
<header>
<h1>Build Pipeline Metrics</h1>
<p data-text="lead">CI/CD pipeline performance — build time
breakdown, weekly success rate, failure counts by repo</p>
</header>
<hgroup>
<h1>Build Pipeline Metrics — CI/CD Performance</h1>
<p>Ten weeks of pipeline data across five repos. No theories. Just results.</p>
</hgroup>
<div data-layout="stats">
<div>
<span data-stat="value">5</span>
<span data-stat="label">Repos tracked</span>
</div>
<div>
<span data-stat="value">94%</span>
<span data-stat="label">Avg success rate</span>
</div>
<div>
<span data-stat="value">120s</span>
<span data-stat="label">Longest build</span>
</div>
<div>
<span data-stat="value">32</span>
<span data-stat="label">Failures (10 wk)</span>
</div>
</div>
<section>
<h2>Build time breakdown</h2>
<p>Seconds per phase across all tracked repos — compile, test, deploy. Max is 120s (agentic-semantic-web). Test dominates every build. That's expected. Don't cut your test suite to make this chart look better.</p>
<table data-chart="bar" data-chart-stacked>
<caption>Build time breakdown — seconds per phase (max 120s)</caption>
<thead>
<tr><th></th><th>Compile</th><th>Test</th><th>Deploy</th></tr>
</thead>
<tbody>
<!-- max=120s. --size per segment = seconds / 120. totals must sum ≤ 1.0 -->
<tr>
<th scope="row">agentic-semantic-web</th>
<td style="--size: 0.175" data-value="21s">21s</td>
<td style="--size: 0.667" data-value="80s">80s</td>
<td style="--size: 0.158" data-value="19s">19s</td>
</tr>
<tr>
<th scope="row">api-gateway</th>
<td style="--size: 0.100" data-value="12s">12s</td>
<td style="--size: 0.542" data-value="65s">65s</td>
<td style="--size: 0.183" data-value="22s">22s</td>
</tr>
<tr>
<th scope="row">trentuna-web</th>
<td style="--size: 0.150" data-value="18s">18s</td>
<td style="--size: 0.458" data-value="55s">55s</td>
<td style="--size: 0.125" data-value="15s">15s</td>
</tr>
<tr>
<th scope="row">commons</th>
<td style="--size: 0.125" data-value="15s">15s</td>
<td style="--size: 0.375" data-value="45s">45s</td>
<td style="--size: 0.100" data-value="12s">12s</td>
</tr>
<tr>
<th scope="row">vault</th>
<td style="--size: 0.067" data-value="8s">8s</td>
<td style="--size: 0.250" data-value="30s">30s</td>
<td style="--size: 0.083" data-value="10s">10s</td>
</tr>
</tbody>
</table>
<p data-text="dim">Segment totals: asw 120s · api-gateway 99s · trentuna-web 88s · commons 72s · vault 48s</p>
</section>
<section>
<h2>Weekly build success rate</h2>
<p>Percentage of successful builds per week over the last ten weeks. Week 8 hit 100%. That's the target. Everything else is noise telling you where to look.</p>
<table data-chart="column" data-chart-spacing="1" style="--chart-height: 200px">
<caption>Build success rate — weeks 110 (max 100%)</caption>
<tbody>
<!-- max=100%, Week 8 -->
<tr><th scope="row">W1</th><td style="--size: 0.94">94%</td></tr>
<tr><th scope="row">W2</th><td style="--size: 0.88">88%</td></tr>
<tr><th scope="row">W3</th><td style="--size: 0.91">91%</td></tr>
<tr><th scope="row">W4</th><td style="--size: 0.78">78%</td></tr>
<tr><th scope="row">W5</th><td style="--size: 0.95">95%</td></tr>
<tr><th scope="row">W6</th><td style="--size: 0.82">82%</td></tr>
<tr><th scope="row">W7</th><td style="--size: 0.96">96%</td></tr>
<tr><th scope="row">W8</th><td style="--size: 1.00">100%</td></tr>
<tr><th scope="row">W9</th><td style="--size: 0.89">89%</td></tr>
<tr><th scope="row">W10</th><td style="--size: 0.97">97%</td></tr>
</tbody>
</table>
<p data-text="dim">W4 dip: flaky integration test on api-gateway, fixed W5. W6 dip: deploy timeout regression, fixed W7.</p>
</section>
<section>
<h2>Failure count by repo</h2>
<p>Total build failures over the last ten weeks. Two repos are over the acceptable threshold. They're marked. Fix them.</p>
<div data-callout="warning">
<strong>api-gateway and agentic-semantic-web are above threshold.</strong>
Both repos averaged more than one failure per week. api-gateway has the most — 14 failures in 10 weeks. That's not a fluke. That's a structural problem.
</div>
<table data-chart="bar">
<caption>Build failures — last 10 weeks (max 14, api-gateway)</caption>
<tbody>
<!-- max=14. --size = failures / 14. Red rows = above threshold (>7 failures) -->
<tr style="--color: var(--accent-red)">
<th scope="row">api-gateway</th>
<td style="--size: 1.000" data-value="14">14</td>
</tr>
<tr style="--color: var(--accent-red)">
<th scope="row">agentic-semantic-web</th>
<td style="--size: 0.643" data-value="9">9</td>
</tr>
<tr>
<th scope="row">trentuna-web</th>
<td style="--size: 0.357" data-value="5">5</td>
</tr>
<tr>
<th scope="row">commons</th>
<td style="--size: 0.214" data-value="3">3</td>
</tr>
<tr>
<th scope="row">vault</th>
<td style="--size: 0.071" data-value="1">1</td>
</tr>
</tbody>
</table>
<p data-text="dim">Threshold: &gt;7 failures in 10 weeks. vault and commons are solid. trentuna-web is borderline — watch it.</p>
</section>
</main>
<!--#include virtual="/_include/footer.html" -->
</body>
</html>