به مجموعه اعمال یکپارچهسازی به صورت مداوم و تحویل پیوسته یا استقرار پیوسته،CI/CD گفته می شود.
در حقیقت CI/CD افراد را وادار میکند تا مراحل ساخت، تست و استقرار برنامهها را به شکل خودکار انجام دهند. با این امکان به نحوی یک پل بین فعالیتهای تیمهای توسعهٔ نرمافزار و عملیات فناوری اطلاعات و انتشار پروژه ایجاد مینماید.
در واقع CI مخفف Continuous Integration هست که یک عمل نرم افزاری است که توی اون همه برنامه نویس ها، تغییراتی که توی کدشون میدن رو روی یک ریپازیتوری مرکزی merge میکنن.
در CI، هر تغیر در کد، یک زنجیره build-and-test (ساخت و تست) رو برای اون پروژه ای که توش کد تغییر کرده اجرا میکنه.
همچنین CD مخفف Continuous Delivery هست که عمل خودکار سازی انتشار یک پروژه نرم افزاری رو به چرخه فرایند اضافه میکنه.
چیزی که مهمه اینه که تمام این فرایند باید کاملا خودکار باشه؛ و هر نسخه جدیدی که آماده میشه و این چرخه رو شروع به اجرا میکنه، یک نسخه کاملی از log ها (گزارش کامل) ساخته بشه و در اختیار تیم فنی قرار بگیره که همه متوجه بشن اون features (قابلیت یا قابلیت های) جدید، به چه صورتی و با چه بازخوردی به پروژه اضافه شدن.
در بیشتر مواقع، شروع pipeline زمانی اتفاق میوفته که یک push به ریپازیتوری انجام میشه. به عبارت بهتر، وقتی به سورس پروژه تزریق میشه فرایند CI/CD شروع به کار می کنه و یا در یک ساعت خاصی از روز، وب سایتمون رو بروزرسانی بکنیم. که در اون صورت توی تنظیمات ست میکنیم که در زمان مشخص عملیات CI/CD شروع به کار کنه.
در این مرحله ما کدی که به سورس پروژه اضافه شده رو ترکیب میکنیم با کد سورس اصلی و تمام وابستگی هاش (dependencies) رو هم نصب و دانلود میکنیم و سورس رو تبدیل میکنیم به همون چیزی که کاربر نهایی قراره در این نسخه ببینه.
در این مرحله، به صورت خودکار، تست هایی که پروژه باید سپری بکنه تا صحتش اعتبارسنجی بشه اجرا میشن. هم توی کد و هم رفتار کلی محصول. این مهمترین مرحله هست که باعث میشه نسخه نهایی بدون باگ Bug free و بدون کرش Crash free باشه.
– Deploy
در اینجا محیط های انتشار متفاوتی وجود داره، مثلا Beta یا staging که برای تیم داخلی قابل استفاده و در دسترس هست و همچنین محیط ساخت production که دقیقا همونجایی هست که کاربر نهایی میبینه.