كيفية إنشاء خط أنابيب CI CD Jenkins

هل تعلم أن جنكينز يدعم بشكل مدمج CI/CD؟ يمكن أن تحسن تنفيذ خط الأنابيب CI/CD في جنكينز عملية تطوير البرمجيات الخاصة بك بشكل كبير.

جنكينز هو أحد أدوات الأتمتة الأكثر شهرة في مجال DevOps حتى الآن. وإذا كنت تبحث عن البدء في تنفيذ خط الأنابيب CI/CD في جنكينز، فقد وصلت إلى المكان الصحيح.

استمر في القراءة، وفي هذا البرنامج التعليمي، ستتعلم كيفية إعداد خط الأنابيب CI/CD في جنكينز مع GitHub.

المتطلبات الأساسية

يفترض هذا البرنامج التعليمي أن لديك المتطلبات التالية لمتابعة الأمثلة.

يجب أن يكون لديك بالفعل تثبيت جنكينز. ستكون الأمثلة في هذا البرنامج التعليمي تستخدم جنكينز v2.319.1 على كمبيوتر يعمل بنظام Windows 10 20H2.

  • يجب أن يكون واجهة ويب Jenkins الخاصة بك متاحة عبر الإنترنت.
  • A Github account to which you’ll connect with the Jenkins CI CD pipeline.
  • Git SCM. يستخدم هذا البرنامج التعليمي أحدث إصدار (2.34.1) بت 64 من Git لنظام Windows.

التحضير لمستودع GitHub

يتضمن هذا البرنامج التعليمي دمج سلسلة CI CD في Jenkins مع مستودع GitHub. بدلاً من إنشاء مشروع فارغ، يكون من الأسرع البدء في منصة مستودع موجود.

1. أولاً، افتح متصفحًا وسجل الدخول إلى حساب GitHub الخاص بك.

2. ثم، انتقل إلى عنوان URL للمستودع المثال (تطبيق MyShuttle2 من Microsoft Connect 2016). بمجرد أن تكون في صفحة المستودع، انقر على زر Fork في الجزء العلوي الأيمن من الصفحة.

Forking a repo

انتظر انتهاء عملية النسخ. في النهاية، ستكون لديك مستودع يحمل الاسم “اسم المستخدم/MyShuttle2” في حساب GitHub الخاص بك ولديك الوصول الكامل إليه.

3. الآن، أضف ملفًا جديدًا إلى المستودع يحمل الاسم Jenkinsfile. ملف Jenkinsfile هو ملف نصي يحتوي على تعريف لسلسلة Jenkins. يجب أن يكون هذا الملف داخل مستودع رمز المصدر.

على صفحة المستودع الخاص بك، انقر فوق إضافة ملف -> إنشاء ملف جديد.

Adding a new file

4. اكتب Jenkinsfile كاسم للملف الجديد. بعد ذلك، قم بنسخ الشفرة أدناه ولصقها في ملف Jenkinsfile الخاص بك.

  • مصطلح pipeline يشير إلى مجموعة من التعليمات المكتوبة بلغة البرمجة لتسليم مستمر.
  • A stage block contains a series of steps in a pipeline, visualizing the Jenkins pipeline process.
  • A step is a single task that executes a specific process at a defined time. A pipeline contains a series of steps.

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

pipeline {
    agent any

    stages {
        stage('Build') {
            steps {
                echo 'Building..'
            }
        }
        stage('Test') {
            steps {
                echo 'Testing..'
            }
        }
        stage('Deploy') {
            steps {
                echo 'Deploying....'
            }
        }
    }
}

بعد كتابة الشفرة، سيبدو ملفك كما في الصورة أدناه.

Jenkinsfile pipeline script

5. انتقل إلى أسفل الصفحة وانقر على Commit new file.

Committing the new file

الآن لديك ملف Jenkinsfile في مستودعك.

New Jenkinsfile on the GitHub repo

6. أخيرًا، قم بنسخ عنوان URL للمستودع. للقيام بذلك، انقر على Code وانقر على زر Copy. ستحتاج إلى هذا العنوان في إنشاء سير عمل Jenkins CI CD.

Copying the repository URL

إنشاء سير عمل Jenkins CI CD

تطوير ميزة ينطوي على العديد من تغييرات الشفرة. بين كل تغيير في الشفرة، هناك مجموعة من المهام التي يجب القيام بها، وقد تشمل هذه المهام الالتزام بالتغييرات، والترجمة، والاختبار، والتعبئة.

تساعد خدمات الأتمتة مثل Jenkins في جعل هذه الخطوات سريعة وخالية من الأخطاء.

1. قم بفتح متصفح وانتقل إلى عنوان URL الخاص بـ Jenkins وقم بتسجيل الدخول.

2. على لوحة التحكم الخاصة بـ Jenkins Dashboard، انقر على الخيار New Item في القائمة الموجودة على الجانب الأيسر.

Creating a new item in Jenkins

3. أدخل اسم سير العمل الجديد. في هذا البرنامج التعليمي، قم بتسميته demoPipeline وحدد القالب Pipeline. انقر على OK للإنتهاء.

Creating a Pipeline project

4. قم بتحديد مربع مشروع GitHub تحت علامة العامة على صفحة التكوين. بعد ذلك، قم بلصق عنوان URL للمستودع الذي نسخته سابقًا في مربع عنوان URL للمشروع.

Specifying the GitHub repository URL

5. انتقل إلى الأسفل لقسم تنشيطات البناء وقم بتحديد مربع تنشيط الخطاف الخاص بـ GitHub للاستطلاع على GITScm، مثلما هو موضح في الصورة أدناه.

Specifying the build trigger

6. بعد ذلك، قم بالتمرير إلى الأسفل لقسم الأنابيب وحدد/حدد القيم التالية:

  • التعريف: نص الأنبوبة من SCM
  • مدير التحكم في نظام التحكم في الإصدار: جيت
  • عنوان URL للمستودع: عنوان URL للمستودع الخاص بك
Specifying the pipeline values

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

Saving the pipeline configuration

تكوين خطاف (Webhook) في GitHub

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

اتبع الخطوات التالية لإنشاء خطاف (Webhook).

1. انتقل إلى صفحة الإعدادات وانقر على علامة التبويب خطافات (Webhooks) في مستودع GitHub الخاص بك. في صفحة الخطافات (Webhooks)، انقر على إضافة خطاف (Add webhook).

Adding a webhook

2. حدد عنوان URL الخاص بـ Jenkins الخاص بك وأضف /github-webhook/ في حقل Payload URL. على سبيل المثال، HTTP://jenkinsURLhere/github-webhook/.

أيضًا، قم بتغيير قيمة نوع المحتوى إلى application/json.

Setting the webhook URL and content type

3. في اختيار أي الأحداث ترغب في تنشيط هذا الويب هوك، انقر على الخيار اسمح لي بتحديد الأحداث الفردية.

Selecting individual events

4. انتقل إلى الأسفل وقم بتحديد خانات الاختيار الدفعات و طلبات السحب. ستضمن هذه الخيارات أن GitHub سترسل بيانات خاصة بالحمولة إلى Jenkins خلال هذه الأحداث المحددة.

Enabling Pushes and Pull requests events

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

Webhook creation notification

تنفيذ وتنشيط وظيفة الأنابيب لـ Jenkins CI CD

الآن بعد أن قمت بإنشاء وتكوين الأنبوبة الخاصة بك، كيف تتأكد من أن الأنبوبة تعمل بشكل صحيح؟ يوفر Jenkins إضافة Pipeline Stage View لمساعدتك في عرض حالة الأنبوبة.

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

Jenkins pipeline stage view

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

To generate initial build data, click Build Now

3. الآن، اختبر سريان العمل عن طريق إضافة ملف وهمي جديد إلى المستودع. للقيام بذلك، اعود إلى مستودع GitHub الخاص بك وانقر على إضافة ملف -> إنشاء ملف جديد.

أدخل وهمي كاسم الملف الجديد وتأكد من إضافة المحتوى.

Creating a new file

أخيرا، انقر على إرسال ملف جديد في أسفل الصفحة.

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

Jenkins pipeline build status

الاستنتاج

طوال هذا البرنامج التعليمي، تعلمت كيفية إعداد سلسلة عمل CI/CD في جنكينز لأتمتة دورة حياة تطوير البرمجيات. كما تعلمت كيفية استخدام جنكينز للحفاظ على سلسلة من الإجراءات للتكامل المستمر في مشروع برمجي.

هل تعتقد أن سلسلة عمل CI/CD في جنكينز هي استراتيجية ستطبقها في مشاريعك؟ أم هل هناك استراتيجية أخرى لديك بالفعل وتعتقد أنها توفر حلاً أفضل للتكامل المستمر وتسليم مستمر؟

Source:
https://adamtheautomator.com/jenkins-ci-cd/