المؤسسات تعتمد بشكل متزايد على Jenkins لأتمتة عمليات بناءها واختبارها، مما يجعل إدارة وظائف Jenkins يدويًا أمرًا صعبًا. الخبر السار هو أنه بفضل إضافة Jenkins DSL، يمكنك تعريف وظائف Jenkins باستخدام لغة تخصصية لنطاق معين (DSL).
تجعل إضافة Jenkins DSL من الممكن تخزين الوظائف في أنظمة التحكم في الإصدارات، ومشاركتها مع مستخدمين آخرين، وإنشاء وظائف جديدة استنادًا إلى قوالب. وفي هذا البرنامج التعليمي، ستتعلم كيفية الاستفادة من إضافة Jenkins DSL للمساعدة في أتمتة تطوير التطبيقات.
تابع القراءة لكي لا تضطر إلى النقر عبر واجهة Jenkins لإنشاء وظيفة بشكل مضجر!
المتطلبات الأساسية
سيكون هذا البرنامج التعليمي عرضًا عمليًا. إذا كنت ترغب في متابعته، تأكد من أنك تمتلك ما يلي.
- A Linux machine – This guide uses Ubuntu 20.04.
- الأنبوبة: Groovy للقدرة على تنفيذ كود Groovy مباشرةً.
تثبيت برنامج إضافة Jenkins DSL
يمكن أن يكون الحفاظ على الاتساق بين الوظائف أمرًا صعبًا ، ولكن برنامج إضافة Jenkins DSL يحل هذه المشكلة. كيف؟ عن طريق السماح لك بتعريف الوظائف في شكل برمجي ، في ملف قابل للقراءة بواسطة الإنسان.
ولكن قبل إنشاء الوظائف ، ستحتاج إلى تثبيت برنامج إضافة Jenkins DSL أولاً:
1. قم بتوصيل SSH إلى خادم Jenkins الخاص بك وقم بتشغيل الأمر التالي للتحقق من تثبيت الإصدار المطلوب من Java وتشغيل خدمة Jenkins.
أنت جاهز لتثبيت برنامج إضافة Jenkins DSL إذا رأيت نتائج مشابهة للمثال التالي.

2. بعد ذلك، افتح متصفح الويب المفضل لديك وانتقل إلى http://your_server_ip:8080/pluginManager/available. قم بتعويض your_server_ip:8080 بعنوان IP الفعلي ورقم المنفذ لخادم Jenkins الخاص بك.
3. وأخيرًا، قم بتثبيت إضافة Jenkins DSL بالشكل التالي:
- كما هو موضح أدناه، اكتب “Job DSL” في مربع البحث في الأعلى على اليمين.
إذا كنت قد قمت بتثبيت إضافة Job DSL بالفعل وقمت بالترقية من إصدار أقدم، فإن نصوص Job DSL لن تظهر في القائمة عند البحث عن Job DSL. يمكنك التنقل إلى http://your_server_ip:8080/pluginManager/installed للتحقق مما إذا كانت إضافة Job DSL موجودة هناك.
- حدد خانة الاختيار بجوار Job DSL.
- انقر فوق “تثبيت دون إعادة تشغيل” في الأسفل لتثبيت إضافة Jenkins Job DSL.

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

إنشاء وظيفة بذرة Jenkins باستخدام إضافة Jenkins DSL
الآن بعد تثبيت إضافة Jenkins DSL، لا تتردد في إنشاء وظيفة بذرة Jenkins. اكتب نصًا أساسيًا لنص Job DSL ودمج النص في وظيفة بذرة Jenkins. ستقوم بإنشاء وظيفة ذات نمط حر تقوم بطباعة رسالة ‘مرحبًا بك في العالم!’ في وحدة التحكم الخاصة بـ Jenkins.
لدمج نص Job DSL في وظيفة بذرة جينكينز:
1. انتقل إلى لوحة تحكم جينكينز الخاصة بك وانقر على “عنصر جديد” في الشريط الجانبي الأيسر. يتم توجيه متصفحك إلى صفحة حيث يمكنك إنشاء عنصر جديد (الخطوة الثانية).

2. ثم، قم بإنشاء عنصر جديد باستخدام الخطوات التالية:
- أدخل اسم العنصر كما هو موضح أدناه. ولكن يتم تعيين اسم العنصر إلى seed في هذا البرنامج التعليمي.
- حدد مشروع حر (وظيفة بناء قابلة للتكرار، أو نص، أو خط أنابيب) من الخيارات أدناه.
- انقر فوق موافق في الأسفل لإنشاء العنصر الجديد، وسيقوم متصفحك بتوجيهك إلى صفحة تكوين العنصر الجديد.

3. احتفظ بالإعدادات الافتراضية لجميع الأقسام الأخرى على صفحة تكوين العنصر الجديد.
انتقل إلى القسم “بناء”، انقر على زر “إضافة خطوة بناء” واختر “معالج Job DSLs”. وبذلك، تفتح خيارًا حيث ستقدم نص DSL (الخطوة الرابعة).

4. الآن، حدد خيار “استخدام نص DSL المقدم”، كما هو موضح أدناه، واملأ كتلة الشيفرة التالية في الحقل.
هذه الكتلة هي تعريف وظيفة حرة تحمل اسم jenkins-job-demo-1 تستخدم خطوة الشل لطباعة رسالة “Hello World”. اسم الوظيفة هو ما سيظهر في واجهة جينكينز.
هناك العديد من الطرق المتاحة لإنشاء أنواع مختلفة من وظائف Jenkins، التي يمكنك العثور عليها في الوثائق الرسمية.

5. انقر على “حفظ” في أسفل الصفحة لحفظ تكوين العنصر الجديد (البذرة).

6. في النهاية، انتقل إلى لوحة التحكم الخاصة بك في Jenkins للتحقق مما إذا كانت الوظيفة البذرية التي أنشأتها موجودة، كما هو موضح أدناه.

تشغيل وظيفة البذرة
لقد قمت بإنشاء وتحققت بنجاح من وظيفة البذرة. ولكن كيف تعرف ما إذا كانت الوظيفة تعمل؟ ستقوم بتشغيل وظيفة البذرة مقابل النص البرمجي DSL الذي قدمته في الخطوة الرابعة من قسم “إنشاء وظيفة بذرة Jenkins باستخدام إضافة Jenkins DSL”.
1. على لوحة التحكم في Jenkins الخاصة بك، انقر فوق وظيفة البذرة للانتقال إلى صفحة تكوينها.

2. بعد ذلك، انقر على “بناء الآن” في الشريط الجانبي الأيسر لتشغيل الوظيفة.

3. اضغط على F5 لتحديث الصفحة. سترى بناءً جديدًا يظهر تحت قسم تاريخ البناء بحالة نجاح (علامة صح خضراء) في أسفل اليسار، كما هو موضح أدناه.
يشير هذا الإخراج إلى أن وظيفة البذرة قد تم تشغيلها بنجاح، مما أنشأت وظيفة Jenkins جديدة (jenkins-job-demo-1) تحت قسم العناصر المولدة.

4. الآن، انتقل إلى لوحة التحكم الخاصة بك في Jenkins. كما هو موضح أدناه، سترى وظيفة Jenkins الجديدة (jenkins-job-demo-1) التي تم إنشاؤها بواسطة وظيفة البذرة.
انقر فوق الوظيفة المولدة حديثًا للوصول إلى صفحة تكوينها.

5. انقر فوق “بناء الآن” لتشغيل الوظيفة المولدة (jenkins-job-demo-1).

6. في النهاية، انقر على زر السهم لأسفل بجوار بناء ناجح في قسم تاريخ البناء، كما ترى أدناه. اختر مخرجات الوحدة من قائمة السياق لعرض مخرجات المهمة.

إذا كانت المهمة التي تم إنشاؤها تعمل بشكل صحيح، سترى رسالة تقول Hello World! This job is working!!، كما هو موضح أدناه، وهي الرسالة التي قمت بتعريفها في سيناريو Job DSL.
في هذه النقطة، قمت بإنشاء وتشغيل مهمة Jenkins بنجاح باستخدام إضافة Job DSL!

إنشاء مهمة لأنابيب CI/CD باستخدام إضافة Jenkins DSL
حتى الآن، تعلمت كيفية إنشاء وتشغيل مهمة Jenkins ذات نمط حر باستخدام إضافة Job DSL. ستقوم بتلقيم الجزء غير البشري من عملية تطوير البرمجيات عن طريق إنشاء مهمة Jenkins لأنبوب CI/CD.
تحديداً، ستقوم بإنشاء مهمة تقوم بجلب الشفرة من مستودع GitHub، وبناء الشفرة، وتشغيل اختبارات الوحدة.
لإنشاء مهمة Jenkins لأنبوبة CI/CD:
1. انتقل إلى http://your_server_ip:8080/job/seed/configure في مستعرض الويب الخاص بك لتكوين مهمة البذرة الخاصة بك. استبدل your_server_ip بعنوان IP لخادم Jenkins الخاص بك، واستبدل seed باسم المهمة الخاصة بك.
2. بعد ذلك، انتقل لأسفل إلى قسم البناء، وابحث عن حقل سيناريوات DSL، واستبدل المحتوى الحالي بالكود التالي.
انقر على حفظ بمجرد إضافة الكود لحفظ التغييرات.

3. انقر فوق “اختر إنشاء” في الشريط الجانبي الأيسر على الشاشة التالية لإعادة تشغيل وظيفة البذرة، كما هو موضح أدناه. في قسم سجل البناء (أسفل اليسار)، سترى أن وظيفة البذرة تم تشغيلها بنجاح.
انقر على البناء الجديد (# 2) للوصول إلى صفحة تكوين البناء.

4. الآن، انتقل إلى إخراج الكونسول للبناء الجديد. سترى رسالة “تمت إضافة العناصر” واسم الوظيفة الجديدة، كما هو موضح أدناه.
يشير هذا الإخراج إلى أن وظيفة الأنابيب الجديدة تمت إضافتها بنجاح.

5. ارجع إلى لوحة التحكم الخاصة بـ Jenkin، وسترى أن وظيفة الأنابيب الجديدة تمت إضافتها (jenkins-job-demo-2) إلى قائمة الوظائف. انقر على تلك الوظيفة الجديدة للوصول إلى صفحة تكوين الوظيفة.

6. أخيرًا، انقر على “اختر إنشاء” لتشغيل وظيفة الأنابيب الجديدة. سترى أن الوظيفة تم تشغيلها بنجاح، كما هو مشار إليه في قسم سجل البناء.
انقر على السهم المنسدل المجاور للوظيفة وحدد “إخراج الكونسول”.

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

الاستنتاج
في هذا البرنامج التعليمي، تعلمت كيفية إنشاء وظائف Jenkins باستخدام مكون Job DSL. لقد تطرقت إلى تعزيز تطوير التطبيقات من خلال إنشاء أنبوب CI/CD باستخدام مكون Jenkins Pipeline.
المكون المسمى “إضافة Job DSL” ومكون “خط أنابيب Jenkins” يعملان جنبًا إلى جنب لتقديم طريقة قوية يمكنك من خلالها إدارة مهام Jenkins وأنابيب البناء. لماذا لا تقوم بتكوين هذه المكونات لإنشاء أنابيب بناء متطورة التي تشغل تلقائيًا مهام Jenkins كجزء من عملية البناء؟