جلسه بیست و ششم | شروع CI/CD برای پروژه‌ی چند-مخزنی (Multi-Repo)

در این جلسه از 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).

سورس کد و داکیومنت پروژه

پیمایش به بالا