مكتبة الشروحات

إعداد خط أنابيب Jenkins للتكامل المستمر

في بيئة تطوير البرمجيات السريعة اليوم، أصبح التكامل المستمر (CI) ممارسة أساسية لتقديم البرمجيات عالية الجودة بكفاءة. ويُعد Jenkins، وهو خادم أتمتة مفتوح المصدر، واحدًا من الأدوات الأكثر شهرة لتنفيذ التكامل المستمر. تقدم هذه المقالة دليلًا شاملاً حول إعداد خط أنابيب Jenkins للتكامل المستمر، بدءًا من التثبيت والإعداد وصولاً إلى ميزات الخط الأنبوبي المتقدمة وأفضل الممارسات.

ما هو Jenkins؟

Jenkins هو خادم أتمتة مفتوح المصدر يمكّن المطورين من بناء واختبار ونشر البرمجيات بكفاءة. يدعم Jenkins مجموعة واسعة من الإضافات التي تسمح له بالاندماج مع العديد من الأدوات والتقنيات، مما يجعله متعدد الاستخدامات. يستخدم Jenkins بشكل أساسي في التكامل المستمر (CI) والنشر المستمر (CD)، مما يسهل الاختبار والنشر الآلي للتطبيقات.

فوائد استخدام Jenkins للتكامل المستمر

  • مفتوح المصدر: Jenkins مجاني للاستخدام وله مجتمع كبير يساهم باستمرار في تطويره وتحسينه.
  • القابلية للتوسعة: مع أكثر من 1500 إضافة متاحة، يمكن لـ Jenkins التكامل مع أي أداة تقريبًا في دورة حياة تطوير البرمجيات.
  • سهولة الاستخدام: يوفر Jenkins واجهة ويب سهلة الاستخدام لإدارة المهام، وعرض نتائج البناء، وتكوين الإعدادات.
  • البناء الموزع: يدعم Jenkins البناء الموزع، مما يسمح للمستخدمين بتشغيل المهام على أجهزة متعددة، مما يعزز الأداء وقابلية التوسع.
  • توثيق غني: تتوفر وثائق ودروس شاملة، مما يسهل على المستخدمين الجدد البدء.

تثبيت Jenkins

متطلبات النظام

قبل تثبيت Jenkins، تأكد من أن النظام لديك يلبي المتطلبات التالية:

  • Java: يحتاج Jenkins إلى إصدار Java Development Kit (JDK) 8 أو أعلى.
  • الذاكرة: يوصى بذاكرة RAM لا تقل عن 512 ميجابايت، ولكن 1 جيجابايت أو أكثر هو المثالي للمشاريع الأكبر.
  • مساحة القرص: يجب أن يتوفر لديك 1 جيجابايت على الأقل من المساحة الحرة لتثبيت Jenkins، مع حاجة لمساحة إضافية للبناء والآرتيفاكت.

تكوين Jenkins

إعداد Jenkins

بمجرد تثبيت Jenkins، يمكنك الوصول إليه عبر متصفح الويب من خلال العنوان http://localhost:8080. عند الوصول لأول مرة، سيطلب منك Jenkins كلمة مرور المسؤول.

لإيجاد كلمة المرور هذه، استخدم الأمر:

sudo cat /var/lib/jenkins/secrets/initialAdminPassword

بعد إدخال كلمة المرور، ستتم إرشادك عبر معالج الإعداد الأولي حيث يمكنك تثبيت الإضافات المقترحة أو اختيار الإضافات التي ترغب فيها.

تثبيت الإضافات

تُوسع الإضافات من قدرات Jenkins. لتثبيت الإضافات:

  1. اذهب إلى "إدارة Jenkins" > "إدارة الإضافات".
  2. انتقل إلى التبويب "المتاحة" لتصفح واختيار الإضافات.
  3. انقر على "تثبيت بدون إعادة تشغيل" لإضافتها.

بعض الإضافات الأساسية للتكامل المستمر تشمل:

  • إضافة Git: لدمج Git.
  • إضافة Pipeline: لدعم خط أنابيب Jenkins.
  • إضافة Blue Ocean: لواجهة مستخدم حديثة للأنابيب.

إنشاء أول خط أنابيب لك

خط الأنابيب ككود

يتم تعريف خطوط الأنابيب في Jenkins باستخدام الكود، مما يسمح بالتحكم في الإصدارات وإدارة أسهل. يمكن تعريف خطوط الأنابيب بطريقتين: إعلانية و مكتوبة.

فهم مراحل وخطوات خط الأنابيب

خطوط الأنابيب الإعلانية مقابل المكتوبة
  • خطوط الأنابيب الإعلانية: هي طريقة أكثر هيكلية وبسيطة لتعريف خطوط الأنابيب باستخدام كتلة pipeline. هذه الطريقة مفضلة لمعظم المستخدمين.
  • خطوط الأنابيب المكتوبة: هي طريقة أكثر مرونة وقوة باستخدام سكربتات Groovy. هذه الطريقة مناسبة للحالات المعقدة.
تعريف المراحل والخطوات

تمثل المراحل مراحل متميزة في عملية البناء، بينما تمثل الخطوات المهام الفردية التي يتم تنفيذها داخل تلك المراحل. يمكن أن تحتوي كل مرحلة على عدة خطوات.

الدمج مع أنظمة التحكم في الإصدارات

دمج Git

لتكامل Git مع Jenkins:

  1. قم بتثبيت إضافة Git إذا لم تكن قد فعلت ذلك بعد.
  2. أنشئ عنصرًا جديدًا (مهمة) في Jenkins واختر "Pipeline".
  3. في الإعدادات، تحت قسم "Pipeline"، اختر "Pipeline script from SCM".
  4. اختر Git وأدخل عنوان URL للمستودع والفرع.
دمج Subversion

لتكامل Subversion، قم بتثبيت إضافة Subversion وقم بتكوينها بالطريقة نفسها في إعداد مهمتك.

تفعيل عمليات البناء

الاستعلام عن SCM

يمكنك تكوين Jenkins للاستعلام عن نظام التحكم في الإصدارات للحصول على التغييرات في فترات زمنية محددة. للقيام بذلك، اختر خيار "Poll SCM" في إعداد المهمة وحدد جدولًا مشابهًا لـ cron.

Webhooks

باستخدام webhooks، يمكن لـ Jenkins تفعيل البناءات تلقائيًا عند حدوث تغييرات في الكود. تدعم معظم أنظمة التحكم في الإصدارات webhooks لإعلام Jenkins بالالتزامات الجديدة. قم بتكوين URL الخاص بـ webhook في إعدادات المستودع.

  • 0 أعضاء وجدوا هذه المقالة مفيدة
هل كانت المقالة مفيدة ؟