Jenkins التكامل مع GitHub: كيفية تثبيت إضافة Git؟

⚡ ملخص ذكي

Jenkins تتيح ميزة التكامل مع GitHub ربط خادم التشغيل الآلي بمستودع المصدر، مما يسمح ببناء كل عملية إيداع والتحقق منها تلقائيًا. يتم إتمام عملية الربط بتثبيت إضافة Git، وإنشاء مهمة Freestyle، والمصادقة باستخدام رمز مميز، وتسجيل رابط ويب.

  • ؟؟؟؟ المساعد Foundation: Jenkins يأتي هذا المنتج بمجموعة ميزات أساسية، لذا يصل دعم الجهات الخارجية من خلال المكونات الإضافية المثبتة من قسم الإدارة. Jenkins صفحة الإضافات.
  • 🌿 إضافة Git مقابل إضافة GitHub: توفر إضافة Git المصدر Code خيار إدارة يقوم باستنساخ مستودع؛ تضيف إضافة GitHub معالجة webhook والإبلاغ عن حالة الالتزام.
  • ؟؟؟؟ يلزم وجود Git محلي: Jenkins يُفوّض عملية الاستنساخ إلى ملف Git القابل للتنفيذ على المضيف، لذا فإن عدم وجود تثبيت محلي يُنتج المستودع. URL خطأ في التحقق.
  • 🔑 مصادقة الرمز: توقف موقع GitHub عن قبول كلمات مرور الحسابات لعمليات Git في أغسطس 2021، لذا تتطلب المستودعات الخاصة رمز وصول شخصي أو مفتاح SSH.
  • 🪝 التشغيل التلقائي: رابط ويب للمستودع يشير إلى Jenkins تبدأ نقطة نهاية github-webhook عملية بناء عند كل عملية دفع بدلاً من التشغيل اليدوي.
  • 🧾 التحقق: يؤكد تشغيل الأمر git --version أن الملف التنفيذي يعمل، ثم إدارة Jenkins تسجل الأدوات مسارها.
  • 🛠️ استرداد الفشل: المصدر المفقود Code تتسبب خيارات الإدارة، وبيانات الاعتماد المرفوضة، وخطافات الويب الصامتة في معظم حالات فشل التكامل.

Jenkins تكامل جيثب

لقد تعلمت بالفعل ما يلي Jenkins هو وكيف تثبيته على أ Windows نظام. بافتراض اكتمال تلك الخطوات الأساسية، سننتقل الآن إلى إدارة المكونات الإضافية.

Jenkins يتميز بدعم ممتاز للإضافات. يتوفر أكثر من ألف إضافة لتطبيقات الطرف الثالث. للتحقق مما إذا Jenkins يدعم التطبيق الخارجي الذي تفكر فيه، ابحث في دليل الإضافات على https://plugins.jenkins.io/.

Jenkins تكامل جيثب

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

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

يُعد GitHub مستودعًا إلكترونيًا للبرمجيات، ويلعب دورًا محوريًا في منهجية DevOps. فهو يوفر منصة مشتركة للعديد من المطورين الذين يعملون على نفس الكود أو المشروع لتحميل واسترجاع الكود المُحدّث، مما يُسهّل التكامل المستمر.

Jenkins يتطلب الأمر تثبيت إضافة Git قبل أن يتمكن من سحب التعليمات البرمجية من مستودع GitHub. غالبًا ما يتم الخلط بين اسمي الإضافتين، لذا يوضح الجدول أدناه الفرق بينهما:

المساعد ما الذي يوفره ما هو المطلوب لهذا الشرح؟
إضافة Git استخدم بوابة خيار ضمن المصدر Code الإدارة، واستنساخ المستودع، واختيار الفرع نعم، هذا هو الأمر الأساسي.
إضافة GitHub معالجة Webhook، مُشغِّل خطاف GitHub الخيار، وحالة البناء التي تم الإبلاغ عنها إلى الالتزامات مخصص للتشغيل التلقائي فقط

لستَ بحاجة إلى تثبيت هذه الإضافات إذا كنت قد وافقت بالفعل على الإضافات المقترحة أثناء... Jenkins إعداد التثبيت، حيث أن إضافة Git جزء من هذه المجموعة. إذا لم تكن كذلك، فإليك كيفية تثبيتها وسحب التعليمات البرمجية من مستودع GitHub.

كيفية تثبيت إضافة Git في Jenkins

فيما يلي شرح مفصل لكيفية تثبيت إضافة Git في Jenkins:

الخطوة 1 : افتح لوحة القيادة الخاصة بك.
انقر على الزر إدارة Jenkins زر على جهازك Jenkins لوحة القيادة:

قم بتثبيت إضافة Git في Jenkins

الخطوة 2 : ابحث عن خيار الإضافات.
انقر على الإضافات. على التيار Jenkins يُصدر هذا المدخل ببساطة الإضافات; الإصدارات الأقدم تحمل نفس العلامة على الشاشة إدارة المكونات الإضافية.

قم بتثبيت إضافة Git في Jenkins

الخطوة 3 : في صفحة الإضافات، افتح الإضافات المتاحة اضغط على زر Tab ثم:

  1. إختار ال بوابة المساعد
  2. انقر التثبيت بدون إعادة التشغيليستغرق تنزيل الملحق بضع لحظات، وذلك حسب سرعة اتصالك بالإنترنت، ويتم تثبيته تلقائيًا.
  3. يمكنك بدلاً من ذلك اختيار قم بالتنزيل الآن وقم بالتثبيت بعد إعادة التشغيلوفي هذه الحالة يتم تطبيق الملحق عندما Jenkins يبدأ التالي.
  4. إذا كانت الإضافة موجودة بالفعل، فستظهر على تثبيت لا يتم عرض أي تحديث.

قم بتثبيت إضافة Git في Jenkins

الخطوة 4 : بعد تثبيت الإضافات، انتقل إلى إدارة Jenkins > الإضافات > مثبتةتظهر إضافاتك الجديدة ضمن القائمة.

قم بتثبيت إضافة Git في Jenkins

بعد تثبيت الإضافة، Jenkins يمكن الآن توجيهها إلى مستودع فعلي.

كيفية الدمج Jenkins مع GitHub

سنستعرض الآن عملية الدمج Jenkins وGitHub على Windows النظام:

الخطوة 1) إنشاء وظيفة جديدة في Jenkins. افتح ال Jenkins لوحة التحكم الخاصة بك Jenkins URL، على سبيل المثال http://localhost:8080/، ثم انقر جديدنا :

دمج Jenkins مع GitHub

الخطوة 2) أدخل اسم العنصر، وحدد نوع المهمة، ثم انقر فوق OK. سنقوم بإنشاء مشروع Freestyle كمثال.

دمج Jenkins مع GitHub

الخطوة 3) بمجرد النقر OKستتم إعادة توجيهك إلى نموذج إعداد المشروع. أدخل معلومات المشروع هنا:

دمج Jenkins مع GitHub

الخطوة 4) سترى بوابة الخيار تحت مصدر Code الإدارة إذا تم تثبيت إضافة Git في Jenkins:

دمج Jenkins مع GitHub

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

الخطوة 5) ادخل إلى مستودع Git URL لسحب الكود من GitHub.

دمج Jenkins مع GitHub

الخطوة 6) قد تظهر لك رسالة خطأ في المرة الأولى التي تدخل فيها إلى المستودع. URL. على سبيل المثال:

دمج Jenkins مع GitHub

يحدث هذا عندما لا يكون برنامج Git مثبتًا على الجهاز الذي يعمل عليه Jenkins. Jenkins لا يتضمن البرنامج المساعد ملف Git التنفيذي الخاص به؛ بل يستدعي البرنامج المساعد ملف Git التنفيذي على الجهاز المضيف. لتثبيت Git محليًا، انتقل إلى https://git-scm.com/downloads.

دمج Jenkins مع GitHub

قم بتنزيل برنامج تثبيت Git المناسب لجهازك نظام التشغيل — في هذه الحالة Windows — وتثبيته على الجهاز الذي يعمل Jenkinsأكمل التعليمات التي تظهر على الشاشة لإنهاء التثبيت.

دمج Jenkins مع GitHub

الخطوة 7) Jenkins يمكنك تشغيل مستودعات Git بمجرد تثبيت Git على الجهاز. لتأكيد التثبيت، افتح الأوامر، نوع gitثم اضغط على مفتاح الإدخال (Enter). ستظهر قائمة بخيارات Git:

دمج Jenkins مع GitHub

:: Confirm the Git executable resolves and report its version
git --version

:: Expected output
git version 2.51.0.windows.1

:: Show the full path Jenkins should record in Global Tool Configuration
where git

هذا يؤكد أن برنامج Git مثبت على نظامك.

ملاحظة: إذا كان Git مثبتًا بالفعل، فأضف git.exe المسار تحت إدارة Jenkins > الأدوات (مُصنَّف) تكوين الأدوات العامة (في الإصدارات القديمة).

الخطوة 8) بعد تجهيز كل شيء، أضف Git URL إلى Jenkins مرة أخرى. لم تظهر أي رسالة خطأ، مما يؤكد ذلك. Jenkins تكامل Git:

دمج Jenkins مع GitHub

تم الآن إعداد Git بشكل صحيح على نظامك. سيتم استنساخ المستودع العام في هذه المرحلة، لكن المستودع الخاص لا يزال بحاجة إلى بيانات اعتماد، وهي الخطوة التالية.

كيفية المصادقة Jenkins باستخدام رمز الوصول الشخصي من GitHub

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

قم بإنشاء الرمز المميز في GitHub أولاً:

  1. في GitHub، افتح الإعدادات > إعدادات المطور > رموز الوصول الشخصية.
  2. اختيار بالغة الدقة استخدم الرمز المميز حيثما أمكن، لأنه يمكن حصره في مستودع واحد، أو كلاسيكي رمز مميز إذا كانت مؤسستك لا تزال تتطلب واحدًا.
  3. امنح صلاحية قراءة محتويات المستودع. أضف صلاحية كتابة حالة الالتزام فقط عند الحاجة. Jenkins لإبلاغ نتائج البناء مرة أخرى إلى عمليات الالتزام.
  4. حدد تاريخ انتهاء الصلاحية وانسخ الرمز المميز على الفور - يعرضه GitHub مرة واحدة فقط.

ثم قم بتسجيل الرمز المميز في الداخل Jenkins:

  1. انتقل إلى البرنامج المساعد في التأليف إدارة Jenkins > بيانات الاعتماد > النظام > بيانات الاعتماد العامة ثم انقر إضافة بيانات الاعتماد.
  2. اختر اسم المستخدم وكلمة المرور أدخل اسم مستخدم GitHub الخاص بك، ثم الصق رمز في حقل كلمة المرور.
  3. أعطِ المدخل معرّفًا واضحًا مثل github-pat لذا يمكن التعرف عليه في شاشات تكوين الوظائف.
  4. العودة إلى العمل، افتح مصدر Code الإدارة > جيتثم اختر بيانات الاعتماد الجديدة من أوراق اعتماد اسقاط.

خطأ التحقق الأحمر أسفل المستودع URL يختفي بمجرد Jenkins يمكن المصادقة. هناك ملاحظتان عمليتان جديرتان بالتذكر. أولاً، تنتهي صلاحية الرموز المميزة؛ فالمهمة التي تعمل بثبات لعدة أشهر ثم تفشل فجأة عند السحب، غالباً ما يكون السبب هو انتهاء صلاحية الرمز المميز وليس خللاً في المستودع. ثانياً، يُعد مفتاح SSH بديلاً صالحاً - أضف المفتاح الخاص كـ اسم مستخدم SSH مع المفتاح الخاص بيانات الاعتماد واستخدامها git@github.com:owner/repo.git URL نموذج بدلاً من نموذج HTTPS.

كيفية التشغيل Jenkins يتم البناء تلقائيًا باستخدام GitHub Webhook

لا تزال المهمة التي تم إنشاؤها أعلاه تتطلب بدءها يدويًا، مما يُفقد التكامل المستمر جدواه. يُسدّ Webhook هذه الثغرة: حيث يرسل GitHub طلب HTTP إلى Jenkins في كل دفعة، و Jenkins يبدأ البناء فوراً.

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

  1. قم بتثبيت إضافة GitHub. العودة إلى إدارة Jenkins > الإضافات > الإضافات المتاحة وتثبيت GitHub جيثب:وهذا يضيف خيار التشغيل الذي لا توفره إضافة Git وحدها.
  2. قم بتفعيل المشغل في المهمة. افتح إعدادات المهمة، ثم انتقل إلى بناء المشغلات، ووضع علامة مُحفِّز ربط GitHub لاستطلاع GITScm.
  3. أضف رابط الويب في GitHub. في المستودع، افتح الإعدادات > روابط الويب > إضافة رابط ويب.
  4. حدد الحمولة URL لديك Jenkins العنوان متبوعا /github-webhook/. الشرطة المائلة الأخيرة مهمة.
  5. حدد نوع المحتوى إلى application/json واختر مجرد حدث الدفع.
  6. احفظ واختبر. يرسل GitHub ping فوراً. علامة صح خضراء أسفل التسليمات الأخيرة يعني Jenkins قبلت ذلك.
# Payload URL format for the GitHub webhook
https://jenkins.example.com/github-webhook/

# Content type
application/json

# Verify from the Jenkins host that the endpoint answers
curl -I https://jenkins.example.com/github-webhook/

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

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

مشترك Jenkins أخطاء وحلول تكامل GitHub

تندرج جميع عمليات التكامل الفاشلة تقريبًا ضمن إحدى الفئات التالية، ولكل منها عرض مميز يشير مباشرة إلى السبب.

  • لا يوجد خيار Git ضمن المصدر Code الإدارة: لم يتم تثبيت إضافة Git أو لم يتم تحميلها. أعد تثبيتها من إدارة Jenkins > الإضافات، إعادة تشغيل Jenkinsثم أعد تحميل صفحة إعدادات المهمة.
  • "فشل الاتصال بالمستودع" على خادم عام URL: برنامج Git غير موجود Jenkins قم بتثبيت Git على الجهاز المضيف، ثم قم بالتأكيد باستخدام git --version وسجل المسار تحت إدارة Jenkins > الأدوات.
  • فشلت عملية المصادقة على مستودع خاص: يتم استخدام كلمة مرور حساب. استبدلها برمز وصول شخصي كما هو موضح أعلاه، أو قم بالتبديل إلى مفتاح SSH.
  • لا تبدأ عمليات البناء أبدًا بعد عملية الدفع: إما مُشغِّل خطاف GitHub تم إلغاء تحديد خانة الاختيار، أو يتعذر على GitHub الوصول إلى Jenkins URLتحقق من سجل تسليم Webhook في إعدادات المستودع.
  • تم إنشاء فرع خاطئ: القادم محدد الفرع لا يزال يحتفظ بالوضع الافتراضي */master بينما يستخدم المستودع mainقم بتحديث المُحدِّد ليطابق ذلك.
  • كانت عملية الدفع تعمل بالأمس، لكنها لا تعمل اليوم: انتهت صلاحية رمز الوصول الشخصي. قم بإنشاء رمز بديل وتحديث بيانات الاعتماد المخزنة.

تحقق أيضا: ل Jenkins البدائل (مفتوحة المصدر ومدفوعة) و مبادئ السلوك خط أنابيب CI/CD شرح تفصيلي، يعتمد على العلاقة التي تم إنشاؤها هنا.

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

نعم. يقوم مُلحق Git باستنساخ الملفات من أي مضيف Git، لذا فإن المصدر Code خطوات الإدارة متطابقة. يختلف فقط تكوين Webhook، وGitLab المخصص أو Bitbucket توفر الإضافات محفزات خاصة بالمضيف وتقارير الحالة.

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

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

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

نعم. استطلاع SCM يقوم خيار "مشغلات البناء" بفحص المستودع بشكل دوري باستخدام صيغة cron. يعمل هذا الخيار خلف جدار الحماية، ولكنه يُهدر الطلبات ويؤخر عمليات البناء، لذا يُفضل استخدام روابط الويب (webhooks) كلما أمكن ذلك. Jenkins يمكن الوصول إليه.

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