"ما هو التكامل المستمر؟"
دعونا نرى ما يخبرنا به Wiki عن هذا السؤال : التكامل المستمر (CI، التكامل المستمر باللغة الإنجليزية) هو ممارسة لتطوير البرمجيات تتكون من دمج نسخ العمل في فرع تطوير رئيسي مشترك عدة مرات في اليوم وإجراء عمليات إنشاء تلقائية متكررة للمشروع في وقت مبكر اكتشاف العيوب المحتملة وحلول مشاكل التكامل. مخيف، أليس كذلك؟ دعونا نحاول شرح هذا المصطلح بكلمات بسيطة: التكامل المستمر هو نظام لبناء البرامج واختبارها آليًا بتكوينات معينة على أجهزة معينة من أجل اكتشاف الأخطاء وعدم التوافق. حسنًا، لا مشكلة، لقد اكتشفنا ذلك، ولكن السؤال المنطقي التالي يطرح نفسه:لماذا نحتاج CI؟
لنتخيل فقط أنك تكتب مشروعًا كبيرًا، وأن هناك حاجة لإضافة/تغيير الوظائف. لقد نجحت في كتابتها، وكتابة الاختبارات، وإطلاقها، ويبدو أن كل شيء على ما يرام، لكن لا. هناك مواقف يؤثر فيها التغيير في إحدى الوظائف على وظيفة أخرى، وأخرى على وظيفة ثالثة، وهكذا، حتى ينزلق الخطأ في مكان ما ويحدث الخطأ. نعم، يمكنك القول أن هذا على الأرجح مشروع سيئ التصميم، وقد تكون على حق، ولكن ماذا لو لم يكن الأمر كذلك، ويجب أن تكون هذه الروابط موجودة بالفعل؟ وماذا لو كنت تكتب وتنشئ مشروعًا أكثر من مرة، وهو ما يحدث غالبًا؟ لقد أجريت اختبارات على الوظائف المكتوبة حديثًا، وقد أعطت نتيجة إيجابية. لقد قمت بالتزام سريع، ثم اندفعت إلى مكان ما وتفكر بالفعل في كيفية تدخين سيجار في المنزل أثناء شرب الويسكي باهظ الثمن، لكن لا. للأسف، يقول زميلك أو رئيسك، بغض النظر عمن، إنه بسبب التزامك، تحطمت البنية بأكملها. تقول بالحيرة أنك مبرمج، لقد اختبرت كل شيء. ولكن في كثير من الأحيان لا يوجد وقت لاختبار المشروع بأكمله باستمرار، وقد قمت فقط باختبار جزء التعليمات البرمجية الخاص بك الذي قمت بإجراء تغييرات عليه، وليس التجميع بأكمله ككل. هذا هو المكان الذي تأتي فيه CI لمساعدتنا. مع كل دفعة إلى أي مورد، ستقوم CI ببناء مشروعك من البداية، وإجراء جميع الاختبارات، وفقط إذا نجحت جميع الاختبارات وتم إنشاء المشروع، سيحصل البناء على حالة النجاح . وإلا ستتاح لك الفرصة للعودة ورؤية الخطأ الذي حدث. لذا حان الوقت لطرح السؤال "لماذا هذا وليس غيره؟" وإلقاء نظرة على تنفيذ البرنامج. مثال كما قلت سابقًا، المقالة مخصصة لأولئك الذين هم على دراية بـ Maven وGit. لذلك، آمل أن تعرف كيف وماذا أفعل إلى جانب إعداد CI، وما إلى ذلك.-
أولاً، لنقم بإنشاء مشروع اختبار بسيط لـ Maven وننشئ فيه فئة تطبع "Hello World!" ويقوم ببعض العمليات البسيطة، ودعنا نكتب أبسط اختبار لهذا الفصل.
ونتيجة لذلك، يجب أن يكون لدينا هيكل مشروع بدائي:
جميع المصادر ستكون على GitHub الخاص بي. لا يهم ما تكتبه في ملفك الرئيسي وما هي الاختبارات التي ستكون هناك.
-
نحن ندفع مشروعنا إلى GitHub.
-
الآن يأتي الجزء الممتع. من CI، اخترت Travis CI بسبب توفره وموثوقيته. يستخدم Travis GitHub لاستضافة كود المصدر الخاص به.
لذلك، انتقل إلى موقع Travis CI وقم بتسجيل الدخول عبر GitHub. في الملف الشخصي نربط مشروعنا:
كل شيء جاهز للتجميع مع كل دفعة، ولكن السؤال هو كيفية التجميع؟
-
نعود إلى فكرتنا المحبوبة ونقوم بإنشاء ملف .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
لقد أضفت تعليقات، مع الروابط، من أجل الوضوح.
-
ندفع مرة أخرى إلى GitHub ونفتح موقع Travis ونختار المشروع ونراقب البناء. ونتيجة لذلك، نتلقى إشعارًا بشأن الإنشاء الناجح:
يمكننا أيضًا أن نرى على الموقع شارة توضح التجميع الناجح لمشروعنا، والتي يمكننا إدراجها في ملف README.md الخاص بنا:
-
مشروعي الاختباري الذي يمكنك مشاهدته/تنزيله إذا لم تفهم شيئًا ما؛
-
في الواقع موقع Travis CI نفسه ;
-
برنامج تعليمي على الموقع الرسمي حول إعداد واستخدام Travis CI؛
-
فيديو جيد ؛
- برنامج تعليمي آخر ;
GO TO FULL VERSION