"ادغام پیوسته چیست؟"
بیایید ببینیم ویکی درباره این سوال به ما چه میگوید : یکپارچهسازی مداوم (CI، انگلیسی Continuous Integration) یک روش توسعه نرمافزار است که شامل ادغام نسخههای کاری در یک شاخه توسعه اصلی مشترک چند بار در روز و انجام ساختهای خودکار مکرر پروژه برای مراحل اولیه است. تشخیص عیوب بالقوه و راه حل برای مشکلات یکپارچه سازی ترسناک است، اینطور نیست؟ بیایید سعی کنیم این اصطلاح را به زبان ساده توضیح دهیم: ادغام پیوسته سیستمی برای ساخت و آزمایش خودکار نرم افزار با تنظیمات خاص بر روی ماشین های خاص به منظور شناسایی اشکالات و ناسازگاری ها است. بسیار خوب، مشکلی نیست، ما متوجه شدیم، اما سوال منطقی زیر مطرح می شود:چرا به CI نیاز داریم؟
بیایید تصور کنیم که در حال نوشتن یک پروژه بزرگ هستید و نیاز به افزودن/تغییر عملکرد وجود دارد. شما با موفقیت آن را می نویسید، آزمایش می نویسید، راه اندازی می کنید و به نظر می رسد همه چیز خوب است، اما نه. شرایطی وجود دارد که تغییر در یک عملکرد بر دیگری تأثیر میگذارد، دیگری بر عملکرد سوم تأثیر میگذارد و به همین ترتیب، تا زمانی که یک باگ در جایی از بین میرود و خطایی رخ میدهد. بله، شما می توانید بگویید که به احتمال زیاد این یک پروژه ضعیف طراحی شده است، و ممکن است حق با شما باشد، اما اگر اینطور نباشد، و این ارتباطات واقعاً باید وجود داشته باشند، چه؟ و اگر بیش از یک بار در حال نوشتن و ایجاد یک پروژه باشید، که اغلب چنین است، چه؟ شما تست هایی را روی عملکرد تازه نوشته شده خود اجرا کردید و آنها نتیجه مثبت دادند. شما به سرعت متعهد شدید، سپس به جایی فشار آوردید و از قبل به این فکر می کنید که چگونه در خانه سیگار بکشید در حالی که ویسکی گران قیمت می نوشید، اما نه. افسوس، همکار یا رئیس شما، مهم نیست چه کسی، می گوید که به دلیل ارتکاب شما، کل ساختمان خراب شده است. با گیجی می گویید برنامه نویس هستید، همه چیز را تست کرده اید. اما اغلب وقت کافی برای آزمایش دائمی کل پروژه وجود ندارد و شما فقط قطعه کدی را که در آن تغییرات ایجاد کرده اید و نه کل اسمبلی را آزمایش کرده اید. اینجاست که CI به کمک ما می آید. با هر بار فشار دادن به هر منبعی، CI پروژه شما را از ابتدا میسازد، همه آزمایشها را اجرا میکند و تنها در صورتی که همه آزمایشها موفق شوند و پروژه ساخته شود، بیلد وضعیت قبولی را دریافت میکند . در غیر این صورت این فرصت را خواهید داشت که برگردید و ببینید چه اشتباهی رخ داده است. بنابراین، زمان آن رسیده است که این سوال را بپرسیم "چرا این و نه در غیر این صورت؟" و نگاهی به پیاده سازی نرم افزار بیندازید. مثال همانطور که قبلاً گفتم، این مقاله برای کسانی است که با Maven و Git آشنا هستند. بنابراین، امیدوارم بدانید که من چگونه و چه کار می کنم علاوه بر راه اندازی CI و غیره.-
ابتدا، بیایید یک پروژه آزمایشی ساده Maven ایجاد کنیم و یک کلاس در آن ایجاد کنیم که "Hello World!" و چند عملیات ساده را انجام می دهد و بیایید ساده ترین تست را برای این کلاس بنویسیم.
در نتیجه، ما باید یک ساختار پروژه اولیه داشته باشیم:
همه منابع در GitHub من خواهند بود. مهم نیست که در Main خود چه می نویسید و چه آزمایش هایی وجود دارد.
-
ما پروژه خود را به GitHub فشار می دهیم.
-
الان قسمت خوبش شروع میشود. از CI، من Travis CI را به دلیل در دسترس بودن و قابل اطمینان بودن آن انتخاب کردم. تراویس از GitHub برای میزبانی کد منبع خود استفاده می کند.
بنابراین، به وب سایت Travis CI بروید و از طریق GitHub وارد شوید. در نمایه ما پروژه خود را متصل می کنیم:
با هر فشار همه چیز برای مونتاژ آماده است، اما سوال این است که چگونه مونتاژ کنیم؟
-
ما به IDEA محبوب خود بازگشته و یک فایل .travis.yml ایجاد می کنیم
این فایل مسئول پیکربندی ساخت تراویس است. بیایید به محبوب ترین تنظیمات نگاه کنیم:
- شما باید زبانی را که پروژه در آن اجرا می شود را مشخص کنید.
- مسیر دایرکتوری ها را مشخص کنید تا ساخت سریعتر انجام شود.
- روش اعلانهای مربوط به مونتاژ موفق یا ناموفق را مشخص کنید.
یک پیکربندی معمولی تراویس باید به این صورت باشد:
# https://docs.travis-ci.com/user/languages/java/ language: java jdk: oraclejdk9 # Improve Build Speed https://dzone.com/articles/travis-ci-tutorial-java-projects cache: directories: - $HOME/.m2 # Notifications https://docs.travis-ci.com/user/notifications/ notifications: email: recipients: - qThegamEp@gmail.com on_success: always # default: change on_failure: always # default: always
من نظرات را با پیوندها برای وضوح اضافه کرده ام.
-
دوباره به GitHub فشار می دهیم و وب سایت تراویس را باز می کنیم ، پروژه را انتخاب می کنیم و ساخت را نظارت می کنیم. در نتیجه، ما یک اعلان در مورد یک ساخت موفق دریافت می کنیم:
همچنین در سایت می توانیم نشانی را با مونتاژ موفقیت آمیز پروژه خود مشاهده کنیم که می توانیم آن را در README.md خود قرار دهیم:
-
پروژه آزمایشی من که اگر چیزی متوجه نشدید می توانید آن را مشاهده/دانلود کنید.
-
در واقع خود وب سایت Travis CI ;
-
آموزش راه اندازی و استفاده از Travis CI در وب سایت رسمی.
-
ویدئوی خوب ؛
- یک آموزش دیگر ؛
GO TO FULL VERSION