49 lines
4.7 KiB
XML
49 lines
4.7 KiB
XML
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 720 1260" width="720" height="1260" role="img" aria-labelledby="title desc">
|
|
<title id="title">Контракт минимального CI/CD pipeline</title>
|
|
<desc id="desc">Вертикальная схема показывает путь от commit и lockfile через проверку и одну сборку к артефакту. Ручной deploy читает только артефакт и останавливается до доставки при несовпадении revision или checksum.</desc>
|
|
<rect width="720" height="1260" fill="#0d1b2a" rx="28"/>
|
|
<text x="56" y="72" fill="#f8fafc" font-family="Arial, sans-serif" font-size="34" font-weight="700">Минимальный pipeline</text>
|
|
<text x="56" y="108" fill="#a5d8ff" font-family="Arial, sans-serif" font-size="22">один результат · одна точка остановки</text>
|
|
|
|
<rect x="48" y="148" width="624" height="132" rx="20" fill="#17324d" stroke="#4dabf7" stroke-width="2"/>
|
|
<text x="80" y="194" fill="#93c5fd" font-family="Arial, sans-serif" font-size="22" font-weight="700">ВХОД</text>
|
|
<text x="80" y="232" fill="#f8fafc" font-family="Arial, sans-serif" font-size="28" font-weight="700">commit + lockfile</text>
|
|
<text x="80" y="262" fill="#cbd5e1" font-family="Arial, sans-serif" font-size="21">код и зафиксированные зависимости</text>
|
|
|
|
<path d="M360 290v42" stroke="#4dabf7" stroke-width="6" stroke-linecap="round"/>
|
|
<path d="M346 320l14 16 14-16" fill="none" stroke="#4dabf7" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
|
|
|
|
<rect x="48" y="350" width="624" height="148" rx="20" fill="#123b34" stroke="#51cf66" stroke-width="2"/>
|
|
<text x="80" y="396" fill="#86efac" font-family="Arial, sans-serif" font-size="22" font-weight="700">VERIFY</text>
|
|
<text x="80" y="434" fill="#f8fafc" font-family="Arial, sans-serif" font-size="28" font-weight="700">npm ci · lint · test</text>
|
|
<text x="80" y="468" fill="#cbd5e1" font-family="Arial, sans-serif" font-size="21">сбой = не начинать build</text>
|
|
|
|
<path d="M360 508v42" stroke="#51cf66" stroke-width="6" stroke-linecap="round"/>
|
|
<path d="M346 538l14 16 14-16" fill="none" stroke="#51cf66" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
|
|
|
|
<rect x="48" y="568" width="624" height="170" rx="20" fill="#3b2d15" stroke="#fbbf24" stroke-width="2"/>
|
|
<text x="80" y="614" fill="#fde68a" font-family="Arial, sans-serif" font-size="22" font-weight="700">BUILD — ЕДИНСТВЕННЫЙ ВЛАДЕЛЕЦ OUTPUT</text>
|
|
<text x="80" y="654" fill="#f8fafc" font-family="Arial, sans-serif" font-size="28" font-weight="700">dist/ + REVISION</text>
|
|
<text x="80" y="690" fill="#f8fafc" font-family="Arial, sans-serif" font-size="28" font-weight="700">+ SHA256SUMS</text>
|
|
<text x="80" y="720" fill="#cbd5e1" font-family="Arial, sans-serif" font-size="21">в artifact попадает готовый каталог</text>
|
|
|
|
<path d="M360 748v42" stroke="#fbbf24" stroke-width="6" stroke-linecap="round"/>
|
|
<path d="M346 778l14 16 14-16" fill="none" stroke="#fbbf24" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
|
|
|
|
<rect x="48" y="808" width="624" height="144" rx="20" fill="#33285c" stroke="#c4b5fd" stroke-width="2"/>
|
|
<text x="80" y="854" fill="#ddd6fe" font-family="Arial, sans-serif" font-size="22" font-weight="700">ARTIFACT</text>
|
|
<text x="80" y="892" fill="#f8fafc" font-family="Arial, sans-serif" font-size="28" font-weight="700">ровно результат build</text>
|
|
<text x="80" y="922" fill="#cbd5e1" font-family="Arial, sans-serif" font-size="21">не cache и не повторная сборка</text>
|
|
|
|
<path d="M360 962v42" stroke="#c4b5fd" stroke-width="6" stroke-linecap="round"/>
|
|
<path d="M346 992l14 16 14-16" fill="none" stroke="#c4b5fd" stroke-width="6" stroke-linecap="round" stroke-linejoin="round"/>
|
|
|
|
<rect x="48" y="1022" width="624" height="164" rx="20" fill="#4a1d2a" stroke="#fb7185" stroke-width="2"/>
|
|
<text x="80" y="1068" fill="#fecdd3" font-family="Arial, sans-serif" font-size="22" font-weight="700">DEPLOY — MANUAL</text>
|
|
<text x="80" y="1106" fill="#f8fafc" font-family="Arial, sans-serif" font-size="28" font-weight="700">читает только artifact</text>
|
|
<text x="80" y="1140" fill="#cbd5e1" font-family="Arial, sans-serif" font-size="21">revision + checksum → delivery</text>
|
|
<text x="80" y="1172" fill="#fda4af" font-family="Arial, sans-serif" font-size="21" font-weight="700">несовпадение → STOP до сети</text>
|
|
|
|
<text x="360" y="1228" text-anchor="middle" fill="#94a3b8" font-family="Arial, sans-serif" font-size="21">Cache ускоряет install. Cache ≠ релизный результат.</text>
|
|
</svg>
|