كيفية إنشاء مهمة بناء جديدة في Jenkins مشروع حرة

⚡ ملخص ذكي

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

  • 🔘 فريف: وظيفة حرة هي Jenkinsنوع مشروع للأغراض العامة، يتم تكوينه من خلال النماذج بدلاً من Jenkinsملف.
  • ☑️ المتطلبات الأساسية: الجري Jenkins يلزم أولاً وجود وحدة تحكم، وJDK على وكيل البناء، ومكون Git الإضافي، ومستودع يمكن الوصول إليه.
  • ✅ عشر خطوات: قم بتسجيل الدخول، وإنشاء عنصر جديد، وتسميته، وتعيين المستودع، وإضافة خطوة بناء، وحفظها، وبنائها، وقراءة مخرجات وحدة التحكم.
  • 🧪 مثال عملي: مشروع HelloWorld تم سحبه من GitHub، يتم تجميعه باستخدام javac وتشغيله باستخدام جافا داخل Windows خطوة بناء الدفعة.
  • 🛠️ خريطة التكوين: ستة أقسام نموذجية - عام، مصدر Code الإدارة، ومحفزات البناء، وبيئة البناء، وخطوات البناء، والإجراءات اللاحقة للبناء - تغطي جميع الخيارات.
  • ⚙️ حدود النطاق: الوظائف الحرة تناسب أتمتة المهام الفردية؛ أما أعمال التسليم متعددة المراحل فتندرج ضمن وظيفة خط الأنابيب الخاضعة للتحكم في الإصدار.

كيفية إنشاء مهمة بناء جديدة في Jenkins مشروع حرة

ما هو Jenkins مشروع ارتجالي؟

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

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

يوضح الرسم البياني أدناه وضع وظيفة النمط الحر داخل نطاق أوسع التكامل المستمر حلقة، من استخراج المصدر وحتى إجراءات ما بعد البناء التي تُبلغ عن النتيجة.

خطوات إنشاء وظيفة في Jenkins مشروع حرة
كيفية إنشاء وظيفة في Jenkins

المتطلبات الأساسية لإنشاء Jenkins وظيفة حرة

قبل أن تنجح الخطوات العشر التالية بشكل كامل، يجب توفر أربعة عناصر. إن إغفال أي منها هو السبب المعتاد لفشل أول محاولة بناء كرة حرة باستخدام كرة حمراء بدلاً من كرة زرقاء.

  • الجري Jenkins وحدة تحكم. Jenkins يستمع على المنفذ 8080 افتراضيًا. إذا Jenkins لم يتم تشغيله بعد، اتبع التعليمات دليل التثبيت لأول مرة.
  • JDK على الجهاز الذي يقوم بتشغيل عملية البناء. يتم تجميع المثال العملي Java، وبالتالي javac يجب أن يكون موجودًا في مسار وحدة التحكم أو الوكيل الذي ينفذ المهمة. تأكد من ذلك بسطر واحد. java -version قم بتنفيذ خطوة البناء قبل إضافة أي شيء آخر.
  • إضافة Git. استخدم بوابة يظهر هذا الخيار فقط ضمن المصدر Code تتم الإدارة بمجرد تثبيت الملحق، من خلال إدارة Jenkins > الإضافات.
  • مستودع يمكن الوصول إليه. بروتوكول HTTPS عام URL لا يتطلب بيانات اعتماد. يحتاج المستودع الخاص إلى بيانات اعتماد مخزنة في Jenkins أولاً، وإلا سيفشل التحقق أثناء عملية البناء الأولى.

حساب لدى إنشاء وظيفة يلزم الحصول على إذن أيضًا - على حساب مستخدم واحد جديد Jenkins الحساب الإداري يمتلكها بالفعل.

كيفية إنشاء مهمة بناء جديدة في Jenkins

تعد مهمة البناء الحر خيارًا مرنًا وسهل الاستخدام للغاية. يمكنك استخدامه لأي نوع من المشاريع؛ فمن السهل إعداده، وتظهر العديد من خياراته في وظائف البناء الأخرى. فيما يلي عملية خطوة بخطوة لإنشاء وظيفة Jenkins.

الخطوة 1) تسجيل الدخول إلى Jenkins

لخلق Jenkins وظيفة حرة، سجل الدخول إلى حسابك Jenkins يمكنك الوصول إلى لوحة التحكم الخاصة بك من خلال زيارة Jenkins مسار التثبيت. عادةً ما يتم استضافته على الخادم المحلي (localhost) على العنوان التالي: http://localhost:8080 إذا كان لديك تثبيت Jenkins في مسار آخر، استخدم المناسب URL للوصول إلى لوحة التحكم الخاصة بك كما هو موضح أدناه Jenkins مثال على خلق فرص عمل.

Jenkins لوحة التحكم التي تم الوصول إليها Jenkins مسار التثبيت بعد تسجيل الدخول

الخطوة 2) إنشاء عنصر جديد

انقر على "جديدنا ستجد الرابط في أعلى الجانب الأيسر من لوحة التحكم. توضح لقطة الشاشة أدناه مكان وجود هذا الرابط.

رابط "عنصر جديد" في أعلى الجانب الأيسر من Jenkins لوحة أجهزة القياس

الخطوة 3) أدخل تفاصيل العنصر

في الشاشة التالية ،

  1. أدخل اسم العنصر الذي تريد إنشاءه. يجب علينا استخدام "Hello World" لهذا العرض التوضيحي.
  2. حدد مشروع حرة
  3. انقر فوق موافق

مربع اسم العنصر مع تحديد مشروع Freestyle قبل النقر على موافق

الخطوة 4) أدخل تفاصيل المشروع

أدخل تفاصيل المشروع الذي ترغب في اختباره. ستظهر صفحة الإعدادات التي ستفتح أدناه.

تم إدخال تفاصيل المشروع في Jenkins صفحة إعداد الوظائف الحرة

الخطوة 5) الدخول إلى المستودع URL

بموجب المصدر Code الإدارة، أدخل مستودعك URLلدينا مستودع اختبار موجود في https://github.com/kriru/firstJava.git

مصدر Code قسم الإدارة مع مستودع اختبار Git URL دخل

من الممكن أيضًا استخدام مستودع محلي.

إذا كان مستودع GitHub الخاص بك خاصًا، Jenkins سيقوم النظام أولاً بالتحقق من بيانات اعتماد تسجيل الدخول الخاصة بك مع GitHub، وبعد ذلك فقط سيقوم بسحب شفرة المصدر من مستودع GitHub الخاص بك.

الخطوة 6) تعديل الإعدادات

الآن وقد قدمت جميع التفاصيل، حان وقت بناء الكود. اضبط الإعدادات ضمن نساعدك في بناء قسم لإنشاء الكود في الوقت الذي تريده. يمكنك أيضًا جدولة عملية الإنشاء بشكل دوري، في أوقات محددة.

قيد الإنشاء،

  1. انقر على "أضف خطوة البناء"
  2. انقر على "تنفيذ Windows أمر دفعة"وأضف الأوامر التي تريد تنفيذها أثناء عملية الإنشاء.

تبدو القائمة المنسدلة التي تسرد خطوات البناء المتاحة على هذا النحو.

تم فتح القائمة المنسدلة "إضافة خطوة بناء" في صفحة تكوين المهمة الحرة.

⚠️ ملاحظة حول الإصدار: الأخيرة Jenkins تُصدر هذه المنطقة خطوات البناء بدلا من نبنيهاوعلى نظام لينكس أو macOS الخيار المكافئ للوكلاء هو تنفيذ قذيفةلا يزال الزر يُسمى أضف خطوة البناء.

لقد قمت هنا بإضافة أوامر جافا لتجميع كود جافا.

لقد أضفت أوامر الويندوز التالية:

javac HelloWorld.java
java HelloWorld

يظهر أدناه مربع الأوامر الذي يحتوي على هذين السطرين المدخلين.

تنفيذ Windows مربع أوامر الدُفعة الذي يحتوي على أوامر javac و java

الخطوة 7) احفظ المشروع

وبعد ادخال كافة البيانات

  1. انقر تطبيق
  2. التوفير المشروع.

الخطوة 8) بناء كود المصدر

الآن، في الشاشة الرئيسية، انقر فوق الزر Build Now الموجود على الجانب الأيسر لإنشاء الكود المصدري.

زر "الإنشاء الآن" على الجانب الأيسر من شاشة مشروع التصميم الحر

الخطوة 9) التحقق من الحالة

بعد النقر على Build now، يمكنك رؤية حالة الإصدار الذي تقوم بتشغيله ضمن Build History.

لوحة سجل البناء تعرض حالة عملية البناء الحر التي تم تشغيلها

الخطوة 10) راجع إخراج وحدة التحكم

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

شاشة إخراج وحدة التحكم تعرض رسالة نجاح عملية البناء المكتملة

باختصار، لقد قمنا بتنفيذ برنامج HelloWorld المستضاف على GitHub. Jenkins يقوم بسحب الكود من المستودع البعيد وبنائه باستمرار بتردد تحدده أنت.

Jenkins شرح أقسام تكوين مشروع Freestyle

لا تتناول هذه الخطوات سوى الحقول التي يحتاجها مثال "HelloWorld". تنقسم صفحة الإعدادات إلى ستة أقسام، ومعرفة محتوى كل قسم منها يُسهّل العثور على الخيارات المتبقية.

القسم ما الذي يتحكم فيه الإعداد النموذجي
General وصف المهمة، والتخلص من الإصدارات القديمة، والمعلمات، وما إذا كانت المهمة تعمل على وكيل محدد Descriptأيون بالإضافة إلى حد الاحتفاظ بالتراكم
مصدر Code الإدارة أي مستودع يجب التحقق منه وبأي بيانات اعتماد وفرع جيت، بروتوكول HTTPS URL، فرع شجرة */master or */main
بناء المشغلات ما الذي يبدأ عملية البناء تلقائيًا؟ استطلاع نظام إدارة الإصدارات، أو البناء بشكل دوري، أو استخدام رابط ويب من GitHub
بناء البيئة تم تطبيق أغلفة حول البنية بأكملها احذف مساحة العمل قبل بدء عملية البناء؛ وأضف الطوابع الزمنية إلى سجل وحدة التحكم.
خطوات البناء الأوامر التي تقوم بالعمل، تعمل من الأعلى إلى الأسفل تنفيذ Windows أمر دفعي، أو تنفيذ shell
إجراءات ما بعد البناء مهما كانت النتيجة، فإن ما يحدث بعد انتهاء الخطوات Archiقم بتسليم القطع الأثرية، وانشر تقرير اختبار، وأرسل بريدًا إلكترونيًا.

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

مشروع حر مقابل خط أنابيب: أيهما يجب أن تستخدم؟

لا يُعدّ نمط التصميم الحرّ النوع الوحيد للمشاريع في شاشة "عنصر جديد"، وليس هو النوع المناسب دائمًا. يوضح الجدول أدناه الفرق بينه وبين... وظيفة خط الأنابيب حول النقاط التي تحدد معظم الخيارات الحقيقية.

نقطة المقارنة مشروع حر خط أنابيب
كيف يتم تعريفها نماذج الويب المخزنة في ملف الوظيفة config.xml على وحدة التحكم A Jenkinsتم إرسال الملف مع رمز التطبيق
تغيير التاريخ ممسوك ب Jenkins، خارج مستودعك Revتمت معاينته وتحديد إصداراته مثل أي ملف مصدر آخر
المراحل والعمل المتوازي قائمة واحدة مسطحة لخطوات البناء مراحل مُسماة، وفروع متوازية، وعرض للمرحلة
منحنى التعلم لا حاجة لكتابة أي نص برمجي يتطلب ذلك صيغة خط الأنابيب التصريحية
أفضل ملاءمة تجميع واحد، نص برمجي واحد، مهمة مجدولة واحدة، أو تعلم Jenkins عمليات بناء واختبار ونشر متعددة المراحل عبر البيئات

قاعدة عملية: استخدم أسلوب الكتابة الحر عندما تكون المهمة واحدة وما زلت تتعلم الأداة، ثم انقل العمل إلى خط أنابيب CI/CD بمجرد أن يتطور إلى مرحلة ثانية أو يحتاج إلى مراجعة جنبًا إلى جنب مع الكود. فرق تعمل بشكل ثنائي Jenkins غالباً ما تصل أدوات البناء إلى تلك النقطة بسرعة — أ مافن و Selenium الإعداد يُعدّ هذا سببًا شائعًا لتشغيل المفتاح، وينطبق المنطق نفسه على أي شيء آخر. اختبار الأتمتة مجموعة برامج تعمل على عدة مراحل.

الأسئلة الشائعة

يُحدد مُخرج وحدة التحكم السبب. الأسباب الثلاثة الشائعة هي: عدم وجود javac في مسار الوكيل، ومستودع خاص بدون بيانات اعتماد مُخزنة، واسم فرع خاطئ. أصلح السطر المُبلغ عنه، ثم شغّل Build Now مرة أخرى.

افتح مُشغّلات البناء وحددها قم بالبناء بشكل دوريثم أدخل صيغة cron مثل H 2 * * * للجري الليلي. H يوزع الحمل على مدار الساعة. استطلاع SCM يستخدم نفس الصيغة ولكنه لا يُبنى إلا عند تغيير المستودع.

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

قم بتخزين الرمز المميز أو مفتاح SSH مرة واحدة تحت إدارة Jenkins > بيانات الاعتمادثم اختره من القائمة المنسدلة "بيانات الاعتماد" في "المصدر". Code قسم الإدارة. Jenkins يتم التحقق من صحة البيانات قبل إتمام عملية الدفع، لذا فإن بيانات الاعتماد الخاطئة تؤدي إلى فشل عملية البناء على الفور.

تقرأ أدوات التعلم الآلي سجلات وحدة التحكم وتُصنّف حالات الفشل المتكررة، ما يُساعد على التمييز بين خطأ حقيقي في عملية الترجمة وبين خلل في البرنامج أو انتهاء مهلة الاتصال. يُرشدك هذا التصنيف إلى السطر المهم بدلاً من تصفح سجل طويل يدويًا.

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

إضافة Archive the artifacts كإجراء لاحق للبناء، وقم بإعطائه نمطًا مثل **/*.class. Archiيتم تخزين ملفات ved لكل رقم إصدار، لذا فهي تبقى حتى بعد إعادة استخدام مساحة العمل أو تنظيفها بواسطة التشغيل التالي.

كل وظيفة تعيش في JENKINS_HOME/jobs/<job-name>، مع إعدادات النموذج في config.xml وكل جولة تحت builds/يكفي نسخ هذا المجلد احتياطيًا لنقل المهمة أو استعادتها.

تلخيص هذه التدوينة بـ: