JavaRush /وبلاگ جاوا /Random-FA /یکپارچه سازی مداوم
Nikita Koliadin
مرحله
Днепр

یکپارچه سازی مداوم

در گروه منتشر شد
با سلام خدمت همکاران! از اینکه کامپیوتر خود را مجبور به ساختن مداوم پروژه کنید خسته شده اید؟ پس این مقاله برای تو است! ادغام پیوسته - 1در این مقاله سعی خواهم کرد مطالب مربوط به ادغام پیوسته (از این پس به سادگی CI) به طور مختصر و واضح ارائه شود، به سوالات ساده ای مانند: "چیست؟"، "چرا؟" پاسخ خواهم داد. و چرا؟" و من یک نمونه از یک پروژه آزمایشی را ارائه خواهم کرد. این مقاله برای یک کاربر باتجربه در نظر گرفته شده است که حداقل با Build System آشنایی دارد: Maven ، نحوه استفاده از Git را می داند و می داند چگونه پروژه ها را به GitHub سوق دهد .

"ادغام پیوسته چیست؟"

بیایید ببینیم ویکی درباره این سوال به ما چه می‌گوید : یکپارچه‌سازی مداوم (CI، انگلیسی Continuous Integration) یک روش توسعه نرم‌افزار است که شامل ادغام نسخه‌های کاری در یک شاخه توسعه اصلی مشترک چند بار در روز و انجام ساخت‌های خودکار مکرر پروژه برای مراحل اولیه است. تشخیص عیوب بالقوه و راه حل برای مشکلات یکپارچه سازی ترسناک است، اینطور نیست؟ بیایید سعی کنیم این اصطلاح را به زبان ساده توضیح دهیم: ادغام پیوسته سیستمی برای ساخت و آزمایش خودکار نرم افزار با تنظیمات خاص بر روی ماشین های خاص به منظور شناسایی اشکالات و ناسازگاری ها است. بسیار خوب، مشکلی نیست، ما متوجه شدیم، اما سوال منطقی زیر مطرح می شود:

چرا به CI نیاز داریم؟

بیایید تصور کنیم که در حال نوشتن یک پروژه بزرگ هستید و نیاز به افزودن/تغییر عملکرد وجود دارد. شما با موفقیت آن را می نویسید، آزمایش می نویسید، راه اندازی می کنید و به نظر می رسد همه چیز خوب است، اما نه. شرایطی وجود دارد که تغییر در یک عملکرد بر دیگری تأثیر می‌گذارد، دیگری بر عملکرد سوم تأثیر می‌گذارد و به همین ترتیب، تا زمانی که یک باگ در جایی از بین می‌رود و خطایی رخ می‌دهد. بله، شما می توانید بگویید که به احتمال زیاد این یک پروژه ضعیف طراحی شده است، و ممکن است حق با شما باشد، اما اگر اینطور نباشد، و این ارتباطات واقعاً باید وجود داشته باشند، چه؟ و اگر بیش از یک بار در حال نوشتن و ایجاد یک پروژه باشید، که اغلب چنین است، چه؟ شما تست هایی را روی عملکرد تازه نوشته شده خود اجرا کردید و آنها نتیجه مثبت دادند. شما به سرعت متعهد شدید، سپس به جایی فشار آوردید و از قبل به این فکر می کنید که چگونه در خانه سیگار بکشید در حالی که ویسکی گران قیمت می نوشید، اما نه. افسوس، همکار یا رئیس شما، مهم نیست چه کسی، می گوید که به دلیل ارتکاب شما، کل ساختمان خراب شده است. با گیجی می گویید برنامه نویس هستید، همه چیز را تست کرده اید. اما اغلب وقت کافی برای آزمایش دائمی کل پروژه وجود ندارد و شما فقط قطعه کدی را که در آن تغییرات ایجاد کرده اید و نه کل اسمبلی را آزمایش کرده اید. اینجاست که CI به کمک ما می آید. با هر بار فشار دادن به هر منبعی، CI پروژه شما را از ابتدا می‌سازد، همه آزمایش‌ها را اجرا می‌کند و تنها در صورتی که همه آزمایش‌ها موفق شوند و پروژه ساخته شود، بیلد وضعیت قبولی را دریافت می‌کند . در غیر این صورت این فرصت را خواهید داشت که برگردید و ببینید چه اشتباهی رخ داده است. بنابراین، زمان آن رسیده است که این سوال را بپرسیم "چرا این و نه در غیر این صورت؟" و نگاهی به پیاده سازی نرم افزار بیندازید. مثال همانطور که قبلاً گفتم، این مقاله برای کسانی است که با Maven و Git آشنا هستند. بنابراین، امیدوارم بدانید که من چگونه و چه کار می کنم علاوه بر راه اندازی CI و غیره.
  1. ابتدا، بیایید یک پروژه آزمایشی ساده Maven ایجاد کنیم و یک کلاس در آن ایجاد کنیم که "Hello World!" و چند عملیات ساده را انجام می دهد و بیایید ساده ترین تست را برای این کلاس بنویسیم.

    در نتیجه، ما باید یک ساختار پروژه اولیه داشته باشیم:

    ادغام مداوم - 2

    همه منابع در GitHub من خواهند بود. مهم نیست که در Main خود چه می نویسید و چه آزمایش هایی وجود دارد.

  2. ما پروژه خود را به GitHub فشار می دهیم.

  3. الان قسمت خوبش شروع میشود. از CI، من Travis CI را به دلیل در دسترس بودن و قابل اطمینان بودن آن انتخاب کردم. تراویس از GitHub برای میزبانی کد منبع خود استفاده می کند.

    بنابراین، به وب سایت Travis CI بروید و از طریق GitHub وارد شوید. در نمایه ما پروژه خود را متصل می کنیم:

    ادغام پیوسته - 3

    با هر فشار همه چیز برای مونتاژ آماده است، اما سوال این است که چگونه مونتاژ کنیم؟

  4. ما به 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

    من نظرات را با پیوندها برای وضوح اضافه کرده ام.

  5. دوباره به GitHub فشار می دهیم و وب سایت تراویس را باز می کنیم ، پروژه را انتخاب می کنیم و ساخت را نظارت می کنیم. در نتیجه، ما یک اعلان در مورد یک ساخت موفق دریافت می کنیم:

    ادغام پیوسته - 4 ادغام مداوم - 5

    همچنین در سایت می توانیم نشانی را با مونتاژ موفقیت آمیز پروژه خود مشاهده کنیم که می توانیم آن را در README.md خود قرار دهیم:

    ادغام مداوم - 6
لینک های مفید: ممکن است اشتباهات و حذفیات در متن وجود داشته باشد. با تشکر از توجه شما!
نظرات
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION