Jenkins ساختار CI-CD را برای ما پیادهسازی میکند.
این که CI-CD چیست و چرا باید برای پیشبرد یک پروژه از ابزارهای CI-CD استفاده شود در این مستند توضیح داده شده است.
به طور کلی :
Jenkins – an open source automation server which enables developers around the world to reliably build, test, and deploy their software.
فرض کنید یک پروژه در اختیار دارید که شامال چندین برنامه نویس و مدیر سیستم است.
همچنین این پروژه دارای بخشهای مختلف Backend و Frontend میباشد و نیاز است تا مراحل تست و توسعه به صورت یکپارچه ، مرتب و منظم پیش رود.
در این حالت از ابزارهایی مثل Jenkins استفاده میشود.
به عنوان مثال نقل قل زیر را از یک برنامه نویسی جاوا در نظر بگیرید تا کمی با این ابزار آشنا شوید.
کلیت داستان اینه که یک برنامه به زبان جاوا داریم که بر روی گیت هاب قرار داره. میخوایم زمانی که ما یک کامیت رو به برنچِ master ، پوش (push) می کنیم، Jenkins بفهمه و یه سری کار ها رو برامون انجام بده :
اول کد رو از روی گیت هاب pull کنه
پروژه رو برامون پکیج کنه (اینجا که برنامه جاوایی هست، فایل WAR رو برامون بسازه)
ایمیج داکر مربوط به پروژه رو برامون بسازه
از روی ایمیج مون یه کانتینر ایجاد کنه و اون رو اجرا کنه(در اینجا یک instance از Tomcat برامون اجرا کنه)
البته مراحل بالا مراحلی بود که خودم تعریف کردم و شما طبق نیازتون میتونین مراحل دیگه ای مثل تست کردن، push کردن ایمیج داکر به Dockerhub و … رو تعریف کنین.