871 lines
29 KiB
XML
871 lines
29 KiB
XML
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||
<svg
|
||
width="1500"
|
||
height="940"
|
||
viewBox="0 0 1500 940"
|
||
role="img"
|
||
aria-label="Workflow Git CI - main protégé, PR, CI, release-pack, déploiement blue/green"
|
||
version="1.1"
|
||
id="svg93"
|
||
sodipodi:docname="archicratie-web-edition-git-ci-workflow-v1.svg"
|
||
inkscape:version="1.3-alpha (95f74fb, 2023-03-31)"
|
||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||
xmlns="http://www.w3.org/2000/svg"
|
||
xmlns:svg="http://www.w3.org/2000/svg">
|
||
<sodipodi:namedview
|
||
id="namedview93"
|
||
pagecolor="#ffffff"
|
||
bordercolor="#000000"
|
||
borderopacity="0.25"
|
||
inkscape:showpageshadow="2"
|
||
inkscape:pageopacity="0.0"
|
||
inkscape:pagecheckerboard="0"
|
||
inkscape:deskcolor="#d1d1d1"
|
||
inkscape:zoom="0.88133333"
|
||
inkscape:cx="253.02572"
|
||
inkscape:cy="536.11952"
|
||
inkscape:window-width="1472"
|
||
inkscape:window-height="1022"
|
||
inkscape:window-x="234"
|
||
inkscape:window-y="30"
|
||
inkscape:window-maximized="0"
|
||
inkscape:current-layer="svg93" />
|
||
<defs
|
||
id="defs2">
|
||
<style
|
||
id="style1">
|
||
/* ✅ Version “Inkscape-safe” : pas de var(), pas de rgba() */
|
||
.canvasBg { fill:#f8fafc; stroke:#e2e8f0; stroke-width:1; }
|
||
|
||
.title { font:800 26px/1.2 ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial; fill:#0f172a; }
|
||
.subtitle { font:600 14px/1.4 ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial; fill:#475569; }
|
||
.laneTitle { font:800 14px/1 ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial; fill:#0f172a; letter-spacing:.2px; }
|
||
.laneNote { font:600 12px/1.4 ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial; fill:#475569; }
|
||
.boxTitle { font:800 14px/1.2 ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial; fill:#0f172a; }
|
||
.boxText { font:600 12px/1.35 ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial; fill:#475569; }
|
||
.mono { font:700 11px/1.35 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace; fill:#334155; }
|
||
|
||
.lane { fill:#f1f5f9; fill-opacity:.70; stroke:#cbd5e1; stroke-width:1; }
|
||
.laneAlt { fill:#e2e8f0; fill-opacity:.55; stroke:#cbd5e1; stroke-width:1; }
|
||
|
||
.box { fill:#ffffff; fill-opacity:.92; stroke:#94a3b8; stroke-width:1.4; }
|
||
.boxAlt { fill:#f8fafc; fill-opacity:.92; stroke:#94a3b8; stroke-width:1.4; }
|
||
|
||
.tag { font:800 10px/1 ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial; }
|
||
.tagOk { fill:#16a34a; }
|
||
.tagWarn { fill:#f59e0b; }
|
||
.tagInfo { fill:#2563eb; }
|
||
.tagDanger { fill:#dc2626; }
|
||
|
||
.arrow { stroke:#64748b; stroke-width:2.2; fill:none; marker-end:url(#arrowHead); }
|
||
.arrowSoft { stroke:#94a3b8; stroke-width:2; fill:none; marker-end:url(#arrowHeadSoft); }
|
||
.dashed { stroke-dasharray:7 6; }
|
||
|
||
.callout { fill:#ffffff; fill-opacity:.70; stroke:#cbd5e1; stroke-width:1.1; }
|
||
.small { font:600 11px/1.35 ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial; fill:#475569; }
|
||
</style>
|
||
<marker
|
||
id="arrowHead"
|
||
markerWidth="10"
|
||
markerHeight="10"
|
||
refX="9"
|
||
refY="5"
|
||
orient="auto">
|
||
<path
|
||
d="M0,0 L10,5 L0,10 Z"
|
||
fill="#64748b"
|
||
id="path1" />
|
||
</marker>
|
||
<marker
|
||
id="arrowHeadSoft"
|
||
markerWidth="10"
|
||
markerHeight="10"
|
||
refX="9"
|
||
refY="5"
|
||
orient="auto">
|
||
<path
|
||
d="M0,0 L10,5 L0,10 Z"
|
||
fill="#94a3b8"
|
||
id="path2" />
|
||
</marker>
|
||
</defs>
|
||
<!-- ✅ Fond explicite + bordure douce -->
|
||
<rect
|
||
x="0.5"
|
||
y="0.5"
|
||
width="1499"
|
||
height="939"
|
||
class="canvasBg"
|
||
rx="26"
|
||
id="rect2" />
|
||
<!-- Header -->
|
||
<text
|
||
x="44"
|
||
y="54"
|
||
class="title"
|
||
id="text2">Archicratie — Workflow Git “pro” (main protégé) + CI + Release + Blue/Green</text>
|
||
<text
|
||
x="44"
|
||
y="82"
|
||
class="subtitle"
|
||
id="text3">
|
||
Objectif : partir d’un hotfix appliqué (si besoin), le remettre proprement sous Git (branche → PR → CI → merge),
|
||
puis produire une release packagée et déployer sans régression.
|
||
</text>
|
||
<!-- Lanes -->
|
||
<rect
|
||
x="40"
|
||
y="115"
|
||
width="440"
|
||
height="770"
|
||
class="lane"
|
||
rx="18"
|
||
id="rect3" />
|
||
<rect
|
||
x="520"
|
||
y="115"
|
||
width="430"
|
||
height="770"
|
||
class="laneAlt"
|
||
rx="18"
|
||
id="rect4" />
|
||
<rect
|
||
x="980"
|
||
y="115"
|
||
width="250"
|
||
height="770"
|
||
class="lane"
|
||
rx="18"
|
||
id="rect5" />
|
||
<rect
|
||
x="1250"
|
||
y="115"
|
||
width="210"
|
||
height="770"
|
||
class="laneAlt"
|
||
rx="18"
|
||
id="rect6" />
|
||
<text
|
||
x="60"
|
||
y="142"
|
||
class="laneTitle"
|
||
id="text6"
|
||
style="font-style:normal;font-variant:normal;font-weight:800;font-stretch:normal;font-size:14px;line-height:1;font-family:ui-sans-serif, system-ui, '-apple-system', 'Segoe UI', Roboto, Helvetica, Arial">Atelier DEV (Mac Studio)</text>
|
||
<text
|
||
x="60"
|
||
y="164"
|
||
class="laneNote"
|
||
id="text7"
|
||
style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-size:12px;line-height:1.4;font-family:ui-sans-serif, system-ui, '-apple-system', 'Segoe UI', Roboto, Helvetica, Arial">Travail local, build, commit, push de branche</text>
|
||
<text
|
||
x="540"
|
||
y="148"
|
||
class="laneTitle"
|
||
id="text8">Gitea (remote)</text>
|
||
<text
|
||
x="540"
|
||
y="170"
|
||
class="laneNote"
|
||
id="text9">main verrouillé · PR obligatoire · historique canon</text>
|
||
<text
|
||
x="1000"
|
||
y="148"
|
||
class="laneTitle"
|
||
id="text10">CI (CI.yaml)</text>
|
||
<text
|
||
x="1000"
|
||
y="170"
|
||
class="laneNote"
|
||
id="text11">build checks · gate de merge</text>
|
||
<text
|
||
x="1270"
|
||
y="148"
|
||
class="laneTitle"
|
||
id="text12">NAS (Prod)</text>
|
||
<text
|
||
x="1270"
|
||
y="170"
|
||
class="laneNote"
|
||
id="text13">release-pack + blue/green</text>
|
||
<!-- Boxes: Mac -->
|
||
<rect
|
||
x="70"
|
||
y="170"
|
||
width="380"
|
||
height="105"
|
||
class="box"
|
||
rx="16"
|
||
id="rect13" />
|
||
<text
|
||
x="92"
|
||
y="198"
|
||
class="boxTitle"
|
||
id="text14"
|
||
style="font-style:normal;font-variant:normal;font-weight:800;font-stretch:normal;font-size:14px;line-height:1.2;font-family:ui-sans-serif, system-ui, '-apple-system', 'Segoe UI', Roboto, Helvetica, Arial">1) Se baser sur main (canon)</text>
|
||
<text
|
||
x="92"
|
||
y="220"
|
||
class="boxText"
|
||
id="text15"
|
||
style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-size:12px;line-height:1.35;font-family:ui-sans-serif, system-ui, '-apple-system', 'Segoe UI', Roboto, Helvetica, Arial">Synchroniser le dépôt local sur le dernier état validé.</text>
|
||
<text
|
||
x="92"
|
||
y="242"
|
||
class="mono"
|
||
id="text16"
|
||
style="font-style:normal;font-variant:normal;font-weight:700;font-stretch:normal;font-size:11px;line-height:1.35;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace">git checkout main git pull --ff-only</text>
|
||
<text
|
||
x="92"
|
||
y="264"
|
||
class="small"
|
||
id="text17"
|
||
style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-size:11px;line-height:1.35;font-family:ui-sans-serif, system-ui, '-apple-system', 'Segoe UI', Roboto, Helvetica, Arial"><tspan
|
||
class="tag tagInfo"
|
||
id="tspan16"
|
||
style="font-style:normal;font-variant:normal;font-weight:800;font-stretch:normal;font-size:10px;line-height:1;font-family:ui-sans-serif, system-ui, '-apple-system', 'Segoe UI', Roboto, Helvetica, Arial">INFO</tspan> main est protégé : pas de commit direct.</text>
|
||
<rect
|
||
x="70"
|
||
y="300"
|
||
width="380"
|
||
height="125"
|
||
class="boxAlt"
|
||
rx="16"
|
||
id="rect17" />
|
||
<text
|
||
x="92"
|
||
y="328"
|
||
class="boxTitle"
|
||
id="text18"
|
||
style="font-style:normal;font-variant:normal;font-weight:800;font-stretch:normal;font-size:14px;line-height:1.2;font-family:ui-sans-serif, system-ui, '-apple-system', 'Segoe UI', Roboto, Helvetica, Arial">2) Créer une branche dédiée “hotfix sync”</text>
|
||
<text
|
||
x="92"
|
||
y="350"
|
||
class="boxText"
|
||
id="text19"
|
||
style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-size:12px;line-height:1.35;font-family:ui-sans-serif, system-ui, '-apple-system', 'Segoe UI', Roboto, Helvetica, Arial">Nom explicite + date. Toute la synchro se fait ici.</text>
|
||
<text
|
||
x="92"
|
||
y="372"
|
||
class="mono"
|
||
id="text20"
|
||
style="font-style:normal;font-variant:normal;font-weight:700;font-stretch:normal;font-size:11px;line-height:1.35;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace">git checkout -b chore/step8-sync-hotfix-YYYYMMDD</text>
|
||
<text
|
||
x="92"
|
||
y="394"
|
||
class="small"
|
||
id="text21"
|
||
style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-size:11px;line-height:1.35;font-family:ui-sans-serif, system-ui, '-apple-system', 'Segoe UI', Roboto, Helvetica, Arial"><tspan
|
||
sodipodi:role="line"
|
||
id="tspan94"
|
||
x="92"
|
||
y="394"><tspan
|
||
class="tag tagWarn"
|
||
id="tspan20"
|
||
style="font-style:normal;font-variant:normal;font-weight:800;font-stretch:normal;font-size:10px;line-height:1;font-family:ui-sans-serif, system-ui, '-apple-system', 'Segoe UI', Roboto, Helvetica, Arial">MANUEL</tspan> Optionnel : appliquer un pack hotfix (tar/sha/rsync)</tspan><tspan
|
||
sodipodi:role="line"
|
||
id="tspan95"
|
||
x="92"
|
||
y="408.85001">si prod a bougé.</tspan></text>
|
||
<rect
|
||
x="70"
|
||
y="455"
|
||
width="380"
|
||
height="160"
|
||
class="box"
|
||
rx="16"
|
||
id="rect21" />
|
||
<text
|
||
x="92"
|
||
y="483"
|
||
class="boxTitle"
|
||
id="text22"
|
||
style="font-style:normal;font-variant:normal;font-weight:800;font-stretch:normal;font-size:14px;line-height:1.2;font-family:ui-sans-serif, system-ui, '-apple-system', 'Segoe UI', Roboto, Helvetica, Arial">3) Appliquer les changements vérifier</text>
|
||
<text
|
||
x="72"
|
||
y="505"
|
||
class="boxText"
|
||
id="text23"
|
||
style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-size:12px;line-height:1.35;font-family:ui-sans-serif, system-ui, '-apple-system', 'Segoe UI', Roboto, Helvetica, Arial">Copier/merge les fichiers (rsync/checksum), puis tester build/dev.</text>
|
||
<text
|
||
x="92"
|
||
y="527"
|
||
class="mono"
|
||
id="text24"
|
||
style="font-style:normal;font-variant:normal;font-weight:700;font-stretch:normal;font-size:11px;line-height:1.35;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace">rm -rf .astro node_modules/.vite</text>
|
||
<text
|
||
x="92"
|
||
y="548"
|
||
class="mono"
|
||
id="text25"
|
||
style="font-style:normal;font-variant:normal;font-weight:700;font-stretch:normal;font-size:11px;line-height:1.35;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace">npm i npm run build</text>
|
||
<text
|
||
x="92"
|
||
y="569"
|
||
class="mono"
|
||
id="text26"
|
||
style="font-style:normal;font-variant:normal;font-weight:700;font-stretch:normal;font-size:11px;line-height:1.35;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace">npm run dev</text>
|
||
<text
|
||
x="92"
|
||
y="593"
|
||
class="small"
|
||
id="text27"
|
||
style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-size:11px;line-height:1.35;font-family:ui-sans-serif, system-ui, '-apple-system', 'Segoe UI', Roboto, Helvetica, Arial"><tspan
|
||
class="tag tagOk"
|
||
id="tspan26"
|
||
style="font-style:normal;font-variant:normal;font-weight:800;font-stretch:normal;font-size:10px;line-height:1;font-family:ui-sans-serif, system-ui, '-apple-system', 'Segoe UI', Roboto, Helvetica, Arial">OK</tspan> On ne push que si build + postbuild passent.</text>
|
||
<rect
|
||
x="70"
|
||
y="640"
|
||
width="380"
|
||
height="145"
|
||
class="boxAlt"
|
||
rx="16"
|
||
id="rect27" />
|
||
<text
|
||
x="92"
|
||
y="668"
|
||
class="boxTitle"
|
||
id="text28"
|
||
style="font-style:normal;font-variant:normal;font-weight:800;font-stretch:normal;font-size:14px;line-height:1.2;font-family:ui-sans-serif, system-ui, '-apple-system', 'Segoe UI', Roboto, Helvetica, Arial">4) Commit propre + diff lisible</text>
|
||
<text
|
||
x="92"
|
||
y="690"
|
||
class="boxText"
|
||
id="text29"
|
||
style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-size:12px;line-height:1.35;font-family:ui-sans-serif, system-ui, '-apple-system', 'Segoe UI', Roboto, Helvetica, Arial">Inspecter, puis commiter en message clair (hotfix étape X).</text>
|
||
<text
|
||
x="92"
|
||
y="712"
|
||
class="mono"
|
||
id="text30"
|
||
style="font-style:normal;font-variant:normal;font-weight:700;font-stretch:normal;font-size:11px;line-height:1.35;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace">git status git diff</text>
|
||
<text
|
||
x="92"
|
||
y="733"
|
||
class="mono"
|
||
id="text31"
|
||
style="font-style:normal;font-variant:normal;font-weight:700;font-stretch:normal;font-size:11px;line-height:1.35;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace"><tspan
|
||
sodipodi:role="line"
|
||
id="tspan96"
|
||
x="92"
|
||
y="733">git add -A git commit -m "step8: sync hotfix</tspan><tspan
|
||
sodipodi:role="line"
|
||
id="tspan97"
|
||
x="92"
|
||
y="747.84998">(SidePanel/reading)"</tspan></text>
|
||
<text
|
||
x="92"
|
||
y="770"
|
||
class="small"
|
||
id="text32"
|
||
style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-size:11px;line-height:1.35;font-family:ui-sans-serif, system-ui, '-apple-system', 'Segoe UI', Roboto, Helvetica, Arial"><tspan
|
||
class="tag tagInfo"
|
||
id="tspan31"
|
||
style="font-style:normal;font-variant:normal;font-weight:800;font-stretch:normal;font-size:10px;line-height:1;font-family:ui-sans-serif, system-ui, '-apple-system', 'Segoe UI', Roboto, Helvetica, Arial">TIP</tspan> Garder le commit “gros” mais unique si c’est un backport prod.</text>
|
||
<rect
|
||
x="70"
|
||
y="805"
|
||
width="380"
|
||
height="65"
|
||
class="box"
|
||
rx="16"
|
||
id="rect32" />
|
||
<text
|
||
x="92"
|
||
y="833"
|
||
class="boxTitle"
|
||
id="text33"
|
||
style="font-style:normal;font-variant:normal;font-weight:800;font-stretch:normal;font-size:14px;line-height:1.2;font-family:ui-sans-serif, system-ui, '-apple-system', 'Segoe UI', Roboto, Helvetica, Arial">5) Push de branche vers Gitea</text>
|
||
<text
|
||
x="92"
|
||
y="855"
|
||
class="mono"
|
||
id="text34"
|
||
style="font-style:normal;font-variant:normal;font-weight:700;font-stretch:normal;font-size:11px;line-height:1.35;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace">git push -u origin chore/step8-sync-hotfix-YYYYMMDD</text>
|
||
<!-- Boxes: Gitea -->
|
||
<rect
|
||
x="536.38428"
|
||
y="241.13464"
|
||
width="396.0968"
|
||
height="123.86536"
|
||
class="box"
|
||
rx="16"
|
||
id="rect34" />
|
||
<text
|
||
x="572"
|
||
y="268"
|
||
class="boxTitle"
|
||
id="text35">6) Ouvrir une PR vers main</text>
|
||
<text
|
||
x="554"
|
||
y="290"
|
||
class="boxText"
|
||
id="text36"
|
||
style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-size:12px;line-height:1.35;font-family:ui-sans-serif, system-ui, '-apple-system', 'Segoe UI', Roboto, Helvetica, Arial">main protégé → PR obligatoire. Décrire : “backport hotfix prod”.</text>
|
||
<text
|
||
x="554"
|
||
y="312"
|
||
class="small"
|
||
id="text37"
|
||
style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-size:11px;line-height:1.35;font-family:ui-sans-serif, system-ui, '-apple-system', 'Segoe UI', Roboto, Helvetica, Arial"><tspan
|
||
class="tag tagWarn"
|
||
id="tspan36"
|
||
style="font-style:normal;font-variant:normal;font-weight:800;font-stretch:normal;font-size:10px;line-height:1;font-family:ui-sans-serif, system-ui, '-apple-system', 'Segoe UI', Roboto, Helvetica, Arial">MANUEL</tspan> Ajouter contexte : fichiers touchés, risque, checks attendus.</text>
|
||
<text
|
||
x="572"
|
||
y="334"
|
||
class="small"
|
||
id="text38"><tspan
|
||
class="tag tagInfo"
|
||
id="tspan37">INFO</tspan> La PR déclenche CI.yaml (pipeline de validation).</text>
|
||
<rect
|
||
x="538.65356"
|
||
y="396.13464"
|
||
width="389.28894"
|
||
height="135"
|
||
class="boxAlt"
|
||
rx="16"
|
||
id="rect38" />
|
||
<text
|
||
x="572"
|
||
y="423"
|
||
class="boxTitle"
|
||
id="text39">7) Review + décisions</text>
|
||
<text
|
||
x="552"
|
||
y="445"
|
||
class="boxText"
|
||
id="text40"
|
||
style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-size:12px;line-height:1.35;font-family:ui-sans-serif, system-ui, '-apple-system', 'Segoe UI', Roboto, Helvetica, Arial">Lecture diff, vérif logique, pas de secrets, pas de régressions UI.</text>
|
||
<text
|
||
x="572"
|
||
y="468"
|
||
class="small"
|
||
id="text41"><tspan
|
||
class="tag tagDanger"
|
||
id="tspan40">STOP</tspan> Si CI rouge : corriger sur la branche, push → CI relancé.</text>
|
||
<text
|
||
x="572"
|
||
y="490"
|
||
class="small"
|
||
id="text42"><tspan
|
||
class="tag tagOk"
|
||
id="tspan41">OK</tspan> Si CI vert + review OK : merge autorisé.</text>
|
||
<rect
|
||
x="537.51892"
|
||
y="548.65356"
|
||
width="390.42358"
|
||
height="138.82753"
|
||
class="box"
|
||
rx="16"
|
||
id="rect42" />
|
||
<text
|
||
x="572"
|
||
y="588"
|
||
class="boxTitle"
|
||
id="text43">8) Merge PR → main (canon)</text>
|
||
<text
|
||
x="572"
|
||
y="610"
|
||
class="boxText"
|
||
id="text44"
|
||
style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-size:12px;line-height:1.35;font-family:ui-sans-serif, system-ui, '-apple-system', 'Segoe UI', Roboto, Helvetica, Arial"><tspan
|
||
sodipodi:role="line"
|
||
id="tspan107"
|
||
x="572"
|
||
y="610">main devient l’unique source officielle.</tspan><tspan
|
||
sodipodi:role="line"
|
||
id="tspan108"
|
||
x="572"
|
||
y="626.20001">La prod se recale dessus.</tspan></text>
|
||
<text
|
||
x="572"
|
||
y="646"
|
||
class="mono"
|
||
id="text45"
|
||
style="font-style:normal;font-variant:normal;font-weight:700;font-stretch:normal;font-size:11px;line-height:1.35;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace">Merge (UI Gitea) → origin/main updated</text>
|
||
<text
|
||
x="572"
|
||
y="668"
|
||
class="small"
|
||
id="text46"
|
||
style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-size:11px;line-height:1.35;font-family:ui-sans-serif, system-ui, '-apple-system', 'Segoe UI', Roboto, Helvetica, Arial"><tspan
|
||
class="tag tagInfo"
|
||
id="tspan45"
|
||
style="font-style:normal;font-variant:normal;font-weight:800;font-stretch:normal;font-size:10px;line-height:1;font-family:ui-sans-serif, system-ui, '-apple-system', 'Segoe UI', Roboto, Helvetica, Arial">INFO</tspan> Optionnel : tagger une release (vX.Y / date).</text>
|
||
<rect
|
||
x="550"
|
||
y="705"
|
||
width="370"
|
||
height="145"
|
||
class="boxAlt"
|
||
rx="16"
|
||
id="rect46" />
|
||
<text
|
||
x="572"
|
||
y="733"
|
||
class="boxTitle"
|
||
id="text47">9) Préparer une release packagée</text>
|
||
<text
|
||
x="572"
|
||
y="755"
|
||
class="boxText"
|
||
id="text48"
|
||
style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-size:12px;line-height:1.35;font-family:ui-sans-serif, system-ui, '-apple-system', 'Segoe UI', Roboto, Helvetica, Arial"><tspan
|
||
sodipodi:role="line"
|
||
id="tspan105"
|
||
x="572"
|
||
y="755">Générer un paquet de release reproductible</tspan><tspan
|
||
sodipodi:role="line"
|
||
id="tspan106"
|
||
x="572"
|
||
y="771.20001">(sources + scripts + config).</tspan></text>
|
||
<text
|
||
x="572"
|
||
y="791"
|
||
class="mono"
|
||
id="text49"
|
||
style="font-style:normal;font-variant:normal;font-weight:700;font-stretch:normal;font-size:11px;line-height:1.35;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace">./release-pack.sh</text>
|
||
<text
|
||
x="572"
|
||
y="813"
|
||
class="small"
|
||
id="text50"
|
||
style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-size:11px;line-height:1.35;font-family:ui-sans-serif, system-ui, '-apple-system', 'Segoe UI', Roboto, Helvetica, Arial"><tspan
|
||
class="tag tagWarn"
|
||
id="tspan49"
|
||
style="font-style:normal;font-variant:normal;font-weight:800;font-stretch:normal;font-size:10px;line-height:1;font-family:ui-sans-serif, system-ui, '-apple-system', 'Segoe UI', Roboto, Helvetica, Arial">MANUEL</tspan> Le pack sert au déploiement sur NAS (blue/green).</text>
|
||
<text
|
||
x="572"
|
||
y="835"
|
||
class="small"
|
||
id="text51"
|
||
style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-size:11px;line-height:1.35;font-family:ui-sans-serif, system-ui, '-apple-system', 'Segoe UI', Roboto, Helvetica, Arial"><tspan
|
||
class="tag tagInfo"
|
||
id="tspan50"
|
||
style="font-style:normal;font-variant:normal;font-weight:800;font-stretch:normal;font-size:10px;line-height:1;font-family:ui-sans-serif, system-ui, '-apple-system', 'Segoe UI', Roboto, Helvetica, Arial">TIP</tspan> Conserver checksum + manifest (traçabilité).</text>
|
||
<!-- Boxes: CI -->
|
||
<rect
|
||
x="1000"
|
||
y="260"
|
||
width="210"
|
||
height="160"
|
||
class="box"
|
||
rx="16"
|
||
id="rect51" />
|
||
<text
|
||
x="1018"
|
||
y="288"
|
||
class="boxTitle"
|
||
id="text52">CI : checks</text>
|
||
<text
|
||
x="1018"
|
||
y="310"
|
||
class="boxText"
|
||
id="text53">npm ci</text>
|
||
<text
|
||
x="1018"
|
||
y="330"
|
||
class="boxText"
|
||
id="text54">astro build</text>
|
||
<text
|
||
x="1018"
|
||
y="350"
|
||
class="boxText"
|
||
id="text55">postbuild scripts</text>
|
||
<text
|
||
x="1018"
|
||
y="370"
|
||
class="boxText"
|
||
id="text56">pagefind</text>
|
||
<text
|
||
x="1018"
|
||
y="394"
|
||
class="small"
|
||
id="text57"><tspan
|
||
class="tag tagOk"
|
||
id="tspan56">PASS</tspan> → merge autorisé</text>
|
||
<text
|
||
x="1018"
|
||
y="414"
|
||
class="small"
|
||
id="text58"><tspan
|
||
class="tag tagDanger"
|
||
id="tspan57">FAIL</tspan> → corriger branche</text>
|
||
<rect
|
||
x="1000"
|
||
y="450"
|
||
width="210"
|
||
height="105"
|
||
class="boxAlt"
|
||
rx="16"
|
||
id="rect58" />
|
||
<text
|
||
x="1018"
|
||
y="478"
|
||
class="boxTitle"
|
||
id="text59">Artefacts</text>
|
||
<text
|
||
x="1018"
|
||
y="500"
|
||
class="boxText"
|
||
id="text60">Logs + traces</text>
|
||
<text
|
||
x="1018"
|
||
y="520"
|
||
class="boxText"
|
||
id="text61">Optionnel : build artefact</text>
|
||
<text
|
||
x="1018"
|
||
y="540"
|
||
class="small"
|
||
id="text62"><tspan
|
||
class="tag tagInfo"
|
||
id="tspan61">INFO</tspan> Sert au diagnostic rapide.</text>
|
||
<!-- Boxes: NAS -->
|
||
<rect
|
||
x="1270"
|
||
y="260"
|
||
width="170"
|
||
height="155"
|
||
class="box"
|
||
rx="16"
|
||
id="rect62" />
|
||
<text
|
||
x="1288"
|
||
y="288"
|
||
class="boxTitle"
|
||
id="text63">Déploiement</text>
|
||
<text
|
||
x="1288"
|
||
y="312"
|
||
class="boxText"
|
||
id="text64">Importer release</text>
|
||
<text
|
||
x="1288"
|
||
y="332"
|
||
class="boxText"
|
||
id="text65">docker build</text>
|
||
<text
|
||
x="1288"
|
||
y="352"
|
||
class="boxText"
|
||
id="text66">web_blue / web_green</text>
|
||
<text
|
||
x="1288"
|
||
y="376"
|
||
class="boxText"
|
||
id="text67">switch proxy</text>
|
||
<text
|
||
x="1288"
|
||
y="398"
|
||
class="small"
|
||
id="text68"><tspan
|
||
class="tag tagOk"
|
||
id="tspan67">OK</tspan> rollback possible</text>
|
||
<rect
|
||
x="1270"
|
||
y="450"
|
||
width="170"
|
||
height="140"
|
||
class="boxAlt"
|
||
rx="16"
|
||
id="rect68" />
|
||
<text
|
||
x="1288"
|
||
y="478"
|
||
class="boxTitle"
|
||
id="text69">Runbook</text>
|
||
<text
|
||
x="1288"
|
||
y="500"
|
||
class="boxText"
|
||
id="text70">healthchecks</text>
|
||
<text
|
||
x="1288"
|
||
y="520"
|
||
class="boxText"
|
||
id="text71">logs</text>
|
||
<text
|
||
x="1288"
|
||
y="540"
|
||
class="boxText"
|
||
id="text72">validation UI</text>
|
||
<text
|
||
x="1288"
|
||
y="566"
|
||
class="small"
|
||
id="text73"><tspan
|
||
class="tag tagWarn"
|
||
id="tspan72">MANUEL</tspan> staging d’abord</text>
|
||
<rect
|
||
x="1270"
|
||
y="640"
|
||
width="170"
|
||
height="210"
|
||
class="box"
|
||
rx="16"
|
||
id="rect73" />
|
||
<text
|
||
x="1288"
|
||
y="668"
|
||
class="boxTitle"
|
||
id="text74">Hotfix prod</text>
|
||
<text
|
||
x="1288"
|
||
y="690"
|
||
class="boxText"
|
||
id="text75">À éviter si possible</text>
|
||
<text
|
||
x="1288"
|
||
y="710"
|
||
class="boxText"
|
||
id="text76">Si nécessaire :</text>
|
||
<text
|
||
x="1288"
|
||
y="732"
|
||
class="boxText"
|
||
id="text77">pack (tar+sha)</text>
|
||
<text
|
||
x="1288"
|
||
y="754"
|
||
class="boxText"
|
||
id="text78">→ rapatrier DEV</text>
|
||
<text
|
||
x="1288"
|
||
y="778"
|
||
class="small"
|
||
id="text79"
|
||
style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-size:11px;line-height:1.35;font-family:ui-sans-serif, system-ui, '-apple-system', 'Segoe UI', Roboto, Helvetica, Arial"><tspan
|
||
sodipodi:role="line"
|
||
id="tspan109"
|
||
x="1288"
|
||
y="778"><tspan
|
||
style="fill:#ff0000"
|
||
id="tspan111">RISK</tspan> Toujours backporter</tspan><tspan
|
||
sodipodi:role="line"
|
||
id="tspan110"
|
||
x="1288"
|
||
y="792.84998">via PR.</tspan></text>
|
||
<!-- Callout -->
|
||
<rect
|
||
x="988.19214"
|
||
y="665.28741"
|
||
width="231.68678"
|
||
height="196.73224"
|
||
class="callout"
|
||
rx="14"
|
||
id="rect79" />
|
||
<text
|
||
x="999"
|
||
y="701"
|
||
class="boxTitle"
|
||
id="text80"
|
||
style="font-style:normal;font-variant:normal;font-weight:800;font-stretch:normal;font-size:14px;line-height:1.2;font-family:ui-sans-serif, system-ui, '-apple-system', 'Segoe UI', Roboto, Helvetica, Arial">Règle d’or</text>
|
||
<text
|
||
x="999"
|
||
y="725"
|
||
class="boxText"
|
||
id="text81"
|
||
style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-size:12px;line-height:1.35;font-family:ui-sans-serif, system-ui, '-apple-system', 'Segoe UI', Roboto, Helvetica, Arial"><tspan
|
||
sodipodi:role="line"
|
||
id="tspan98"
|
||
x="999"
|
||
y="725">Le NAS n’est pas le dépôt source.</tspan><tspan
|
||
sodipodi:role="line"
|
||
id="tspan99"
|
||
x="999"
|
||
y="741.20001">Même si un hotfix a été fait en prod,</tspan></text>
|
||
<text
|
||
x="999"
|
||
y="760"
|
||
class="boxText"
|
||
id="text82"
|
||
style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-size:12px;line-height:1.35;font-family:ui-sans-serif, system-ui, '-apple-system', 'Segoe UI', Roboto, Helvetica, Arial"><tspan
|
||
sodipodi:role="line"
|
||
id="tspan100"
|
||
x="999"
|
||
y="760">l’état final “vrai” doit être : branche</tspan><tspan
|
||
sodipodi:role="line"
|
||
id="tspan101"
|
||
x="999"
|
||
y="776.20001">→ PR → CI → merge main → release</tspan><tspan
|
||
sodipodi:role="line"
|
||
x="999"
|
||
y="792.87439"
|
||
id="tspan102">→ deploy.</tspan></text>
|
||
<text
|
||
x="999"
|
||
y="812"
|
||
class="small"
|
||
id="text83"
|
||
style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-size:11px;line-height:1.35;font-family:ui-sans-serif, system-ui, '-apple-system', 'Segoe UI', Roboto, Helvetica, Arial"><tspan
|
||
sodipodi:role="line"
|
||
id="tspan103"
|
||
x="999"
|
||
y="812"><tspan
|
||
class="tag tagOk"
|
||
id="tspan82"
|
||
style="font-style:normal;font-variant:normal;font-weight:800;font-stretch:normal;font-size:10px;line-height:1;font-family:ui-sans-serif, system-ui, '-apple-system', 'Segoe UI', Roboto, Helvetica, Arial">BUT</tspan> Passation étape 9 = base Git propre</tspan><tspan
|
||
sodipodi:role="line"
|
||
id="tspan104"
|
||
x="999"
|
||
y="826.84998">+ reproductible.</tspan></text>
|
||
<!-- Arrows -->
|
||
<path
|
||
class="arrow"
|
||
d="m 450,222.34493 c 50,0 46.38427,58.78971 86.38427,78.78971"
|
||
id="path83"
|
||
sodipodi:nodetypes="cc" />
|
||
<path
|
||
class="arrow"
|
||
d="m 450,835 c 50,0 60,-15 100,-55"
|
||
id="path84" />
|
||
<path
|
||
class="arrow"
|
||
d="M 931.75492,299.19062 C 995.29501,300.15129 924.67474,339.65204 1000,340"
|
||
id="path85"
|
||
sodipodi:nodetypes="cc" />
|
||
<path
|
||
class="arrowSoft dashed"
|
||
d="M 888.63843,365 C 909.06203,422.26929 925.80938,435.71104 1000,500"
|
||
id="path86"
|
||
sodipodi:nodetypes="cc" />
|
||
<path
|
||
class="arrow"
|
||
d="M1210 340 C1240 340, 1245 340, 1270 340"
|
||
id="path87" />
|
||
<path
|
||
class="arrow"
|
||
d="M920 620 C980 620, 1000 620, 1080 620"
|
||
id="path88" />
|
||
<path
|
||
class="arrow"
|
||
d="m 920,620 c 60,0 311.3313,0.2118 347.7307,-236.67171"
|
||
id="path89"
|
||
sodipodi:nodetypes="cc" />
|
||
<path
|
||
class="arrowSoft dashed"
|
||
d="m 1269.652,672.90469 c -83.9636,0.6354 -155.1134,-27.51891 -348.51736,-27.76853"
|
||
id="path90"
|
||
sodipodi:nodetypes="cc" />
|
||
<!-- Footnote -->
|
||
<text
|
||
x="44"
|
||
y="916"
|
||
class="subtitle"
|
||
id="text93">
|
||
Légende : <tspan
|
||
class="tag tagInfo"
|
||
id="tspan90">INFO</tspan> invariant / contexte · <tspan
|
||
class="tag tagWarn"
|
||
id="tspan91">MANUEL</tspan> action humaine ·
|
||
<tspan
|
||
class="tag tagOk"
|
||
id="tspan92">OK</tspan> attendu · <tspan
|
||
class="tag tagDanger"
|
||
id="tspan93">STOP</tspan> bloquant.
|
||
</text>
|
||
</svg>
|