JavaRush /مدونة جافا /Random-AR /التكامل المستمر
Nikita Koliadin
مستوى
Днепр

التكامل المستمر

نشرت في المجموعة
تحياتي ايها الزملاء! هل سئمت من إجبار جهاز الكمبيوتر الخاص بك على بناء مشروع باستمرار؟ إذن هذه المقالة لك! التكامل المستمر - 1سأحاول في هذه المقالة تقديم المواد المتعلقة بالتكامل المستمر بإيجاز ووضوح (يشار إليها فيما بعد بـ CI)، وسأجيب على أسئلة بسيطة مثل: "ما هذا؟"، "لماذا؟" و لماذا؟" وسأقدم مثالا لمشروع اختبار. هذه المقالة مخصصة للمستخدم ذي الخبرة الذي يكون على الأقل على دراية بنظام البناء: Maven ، ويعرف كيفية استخدام Git ويعرف كيفية دفع المشاريع إلى GitHub ؛

"ما هو التكامل المستمر؟"

دعونا نرى ما يخبرنا به Wiki عن هذا السؤال : التكامل المستمر (CI، التكامل المستمر باللغة الإنجليزية) هو ممارسة لتطوير البرمجيات تتكون من دمج نسخ العمل في فرع تطوير رئيسي مشترك عدة مرات في اليوم وإجراء عمليات إنشاء تلقائية متكررة للمشروع في وقت مبكر اكتشاف العيوب المحتملة وحلول مشاكل التكامل. مخيف، أليس كذلك؟ دعونا نحاول شرح هذا المصطلح بكلمات بسيطة: التكامل المستمر هو نظام لبناء البرامج واختبارها آليًا بتكوينات معينة على أجهزة معينة من أجل اكتشاف الأخطاء وعدم التوافق. حسنًا، لا مشكلة، لقد اكتشفنا ذلك، ولكن السؤال المنطقي التالي يطرح نفسه:

لماذا نحتاج CI؟

لنتخيل فقط أنك تكتب مشروعًا كبيرًا، وأن هناك حاجة لإضافة/تغيير الوظائف. لقد نجحت في كتابتها، وكتابة الاختبارات، وإطلاقها، ويبدو أن كل شيء على ما يرام، لكن لا. هناك مواقف يؤثر فيها التغيير في إحدى الوظائف على وظيفة أخرى، وأخرى على وظيفة ثالثة، وهكذا، حتى ينزلق الخطأ في مكان ما ويحدث الخطأ. نعم، يمكنك القول أن هذا على الأرجح مشروع سيئ التصميم، وقد تكون على حق، ولكن ماذا لو لم يكن الأمر كذلك، ويجب أن تكون هذه الروابط موجودة بالفعل؟ وماذا لو كنت تكتب وتنشئ مشروعًا أكثر من مرة، وهو ما يحدث غالبًا؟ لقد أجريت اختبارات على الوظائف المكتوبة حديثًا، وقد أعطت نتيجة إيجابية. لقد قمت بالتزام سريع، ثم اندفعت إلى مكان ما وتفكر بالفعل في كيفية تدخين سيجار في المنزل أثناء شرب الويسكي باهظ الثمن، لكن لا. للأسف، يقول زميلك أو رئيسك، بغض النظر عمن، إنه بسبب التزامك، تحطمت البنية بأكملها. تقول بالحيرة أنك مبرمج، لقد اختبرت كل شيء. ولكن في كثير من الأحيان لا يوجد وقت لاختبار المشروع بأكمله باستمرار، وقد قمت فقط باختبار جزء التعليمات البرمجية الخاص بك الذي قمت بإجراء تغييرات عليه، وليس التجميع بأكمله ككل. هذا هو المكان الذي تأتي فيه CI لمساعدتنا. مع كل دفعة إلى أي مورد، ستقوم CI ببناء مشروعك من البداية، وإجراء جميع الاختبارات، وفقط إذا نجحت جميع الاختبارات وتم إنشاء المشروع، سيحصل البناء على حالة النجاح . وإلا ستتاح لك الفرصة للعودة ورؤية الخطأ الذي حدث. لذا حان الوقت لطرح السؤال "لماذا هذا وليس غيره؟" وإلقاء نظرة على تنفيذ البرنامج. مثال كما قلت سابقًا، المقالة مخصصة لأولئك الذين هم على دراية بـ Maven وGit. لذلك، آمل أن تعرف كيف وماذا أفعل إلى جانب إعداد CI، وما إلى ذلك.
  1. أولاً، لنقم بإنشاء مشروع اختبار بسيط لـ Maven وننشئ فيه فئة تطبع "Hello World!" ويقوم ببعض العمليات البسيطة، ودعنا نكتب أبسط اختبار لهذا الفصل.

    ونتيجة لذلك، يجب أن يكون لدينا هيكل مشروع بدائي:

    التكامل المستمر - 2

    جميع المصادر ستكون على GitHub الخاص بي. لا يهم ما تكتبه في ملفك الرئيسي وما هي الاختبارات التي ستكون هناك.

  2. نحن ندفع مشروعنا إلى GitHub.

  3. الآن يأتي الجزء الممتع. من CI، اخترت Travis CI بسبب توفره وموثوقيته. يستخدم Travis GitHub لاستضافة كود المصدر الخاص به.

    لذلك، انتقل إلى موقع Travis CI وقم بتسجيل الدخول عبر GitHub. في الملف الشخصي نربط مشروعنا:

    التكامل المستمر - 3

    كل شيء جاهز للتجميع مع كل دفعة، ولكن السؤال هو كيفية التجميع؟

  4. نعود إلى فكرتنا المحبوبة ونقوم بإنشاء ملف .travis.yml

    هذا الملف مسؤول عن تكوين بناء Travis. دعونا نلقي نظرة على الإعداد الأكثر شعبية:

    • يجب عليك تحديد اللغة التي سيتم بها تنفيذ المشروع؛
    • حدد المسار إلى الدلائل لجعل الإنشاء أسرع؛
    • حدد طريقة الإخطارات حول التجميع الناجح أو غير الناجح.

    هذا ما يجب أن يبدو عليه تكوين Travis النموذجي:

    # 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 ونفتح موقع Travis ونختار المشروع ونراقب البناء. ونتيجة لذلك، نتلقى إشعارًا بشأن الإنشاء الناجح:

    التكامل المستمر - 4 التكامل المستمر - 5

    يمكننا أيضًا أن نرى على الموقع شارة توضح التجميع الناجح لمشروعنا، والتي يمكننا إدراجها في ملف README.md الخاص بنا:

    التكامل المستمر - 6
روابط مفيدة: قد تكون هناك أخطاء وسهو في النص. شكرًا لكم على اهتمامكم!
تعليقات
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION