در این جلسه از mono-repo به multi-repo میرسیم و با هم یک جریان CI/CD برای پروژههای چند-مخزنی طراحی و پیادهسازی میکنیم — شامل ساخت templates، Trigger بین مخازن و روشهای اشتراکگذاری آرتیفکت.
در جلسه بیستوششم Live Coding RahBia سراغ پیادهسازی CI/CD برای پروژههای چند-مخزنی (multi-repo) میرویم. تا امروز با mono-repo کار کردهایم؛ از امروز یاد میگیریم چطور برای هر مخزن جداگانه pipeline طراحی کنیم و در عین حال جریان کلی توسعه و انتشار را هماهنگ نگه داریم.
در این جلسه به دید عملی کار میکنیم و مفاهیمی که پوشش میدهیم شامل:
-
معماری CI برای multi-repo: بررسی الگوها (مثل shared templates، central pipeline repo، یا multi-project pipelines) و انتخاب الگوی مناسب برای پروژه.
-
طراحی و نوشتن pipelineها: ایجاد فایلهای pipeline مستقل برای هر ریپو و ساخت قالبهای مشترک (CI templates) تا قواعد اجرای یکنواخت شوند.
-
Trigger و هماهنگی بین مخازن: راهاندازی مکانیزمهایی که وقتی در یک مخزن تغییر شد، مخزنهای وابسته بیلد یا تست شوند (مثلاً با trigger، webhook یا multi-project pipeline).
-
انتقال و اشتراکگذاری آرتیفکت: ساخت و منتشر کردن ایمیجها/باینریها در registry و استفاده از artifact repository مشترک برای جلوگیری از تکرار.
-
تست یکپارچه و ادغام (integration tests): اجرای تستهای واحد در هر مخزن و تستهای یکپارچه در pipelineِ ترکیبی قبل از دپلوی.
-
نسخهگذاری و انتشار: استراتژیهای versioning و انتشار بین مخازن، و روشهایی برای promote کردن آرتیفکتها از staging به production.
-
نکات عملی: مدیریت متغیرهای مشترک (CI variables/secret store)، cache و speed-up، و استراتژیهای rollout امن (rolling / canary / staged).