استكشاف التسليم المستمر باستخدام GitHub Actions
توفر إجراءات GitHub آلية تنفيذ مهام سير عمل تسليم البرامج باستخدام قدرات النظام الأساسي GitHub. سيكون هذا هو نهج التكامل المستمر/التسليم المستمر الأمثل للمؤسسة في نموذج السيناريو الخاص بنا، مع مراعاة خططها لاستخدام GitHub لرحلة DevOps الخاصة بها. في هذه الوحدة، ستتعرف على استخدام إجراءات GitHub لإنشاء وتشغيل مهام سير عمل CI/CD.
ما هي إجراءات GitHub؟
في سياق GitHub، يكون لمصطلح الإجراءات معنى مزدوجا. يمثل الأول (Actions) خدمة GitHub، التي وفرت القدرة على تنفيذ مهام سير عمل CI/CD. الثاني (إجراءات الأحرف الصغيرة) يعين وحدات قابلة لإعادة الاستخدام يمكن تضمينها في مهام سير العمل لتقديم وظيفة معينة، مثل تشغيل البرامج النصية والملفات التنفيذية، أو إنشاء وتحميل البيانات الاصطناعية، أو إعداد الوصول إلى اشتراك Azure.
ما هي المكونات الرئيسية ل GitHub Actions؟
تتضمن المكونات الرئيسية لإجراءات GitHub ما يلي:
- سير العمل: سلسلة من الخطوات المخزنة في ملف بتنسيق YAML. تنفذ مهام سير العمل الخطوات بمجرد تشغيلها إما يدويا أو (بشكل متكرر) تلقائيا بواسطة الأنشطة المتعلقة بالمستودع، مثل الدفعات أو عمليات دمج الفروع.
- المهمة: عنصر علوي في سير العمل. يمكن تشغيل المهام داخل سير العمل بالتوازي أو بالتسلسل.
- خطوة : عنصر علوي داخل وظيفة. كل خطوة هي مهمة أو إجراء يقوم بتنفيذ نشاط معين، مثل تشغيل برنامج نصي أو إنشاء أداة.
- الإجراء: نشاط ما قبل البناء أو تم تطويره خصيصا (كما ذكر سابقا). يوفر GitHub سوقا حيث يمكنك العثور على مجموعة واسعة من الإجراءات التي تم إنشاؤها مسبقا.
- المتغير: قيمة مسماة تسمح لك بتخزين البيانات وإعادة استخدامها عبر الخطوات في سير العمل. يمكنك إنشاء متغيرات مخصصة خاصة بك أو استخدام أي من متغيرات البيئة الافتراضية المعرفة مسبقا التي تم تعيينها تلقائيا داخل كل سير عمل.
- السرية: متغير مشفر يمكن استخدامه لتخزين البيانات الحساسة.
كيفية إنشاء سير عمل GitHub Actions؟
لإنشاء سير عمل GitHub Actions، استخدم الخطوات التالية:
- إنشاء مستودع. لتنفيذ سير عمل إجراءات GitHub، ستحتاج إلى حساب GitHub ومستودع. بشكل افتراضي، يتضمن المستودع الجديد الفرع الافتراضي، المسمى عادة الرئيسية .
- إنشاء دليل .github/workflows. يجب أن تتواجد مهام سير عمل GitHub Actions في دليل .github/workflows في جذر المستودع.
- إنشاء ملف YAML. يحتوي سير عمل GitHub Actions على تنسيق YAML. اسمه عشوائي، ولكن من المتوقع تعيين الملحق إلى .yml.
- تعريف سير العمل في ملف YAML وحفظ التغييرات. يحتاج ملف YAML إلى تضمين تعريف سير العمل.
- تثبيت الملف المحفوظ في المستودع. لإنهاء تغييرات سير العمل، تحتاج إلى تنفيذ التثبيت، كما هو الحال مع أي ملف يشكل جزءا من المستودع. إذا قررت تأليف سير عمل على الكمبيوتر المحلي (بدلا من استخدام واجهة ويب GitHub)، يمكنك استنساخ المستودع بعد إنشائه، وتطبيق التغييرات وتثبيتها محليا، ثم دفعها إلى GitHub.
فيما يلي مثال بسيط على سير عمل GitHub Actions الذي يعرض رسالة Hello من GitHub Actions! بمجرد تنفيذها.
name: Simple GitHub Actions workflow
on: [push]
jobs:
say_hello:
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v2
- name: Run Build Script
run: |
echo "Hello, GitHub Actions!"
يحدد السطر الأول من سير العمل اسمه، والذي يتم عرضه على علامة التبويب Actions للمستودع في واجهة ويب GitHub. يعين سطر on: [push] الحدث، الذي يؤدي إلى تشغيل سير العمل (في هذه الحالة، دفع إلى أي فرع في مستودع سير العمل).
يتكون سير العمل من مهمة واحدة تسمى say_hello، كما هو موضح في المحتوى الذي يتبع سطر jobs:. يحدد السطر التالي (runs-on: ubuntu-latest) نوع نظام التشغيل الذي يجب استخدامه لتشغيل المهمة. يعتمد الاختيار على المهام التي تحتوي عليها الوظيفة، وفي هذه الحالة، سيتم تشغيل المهمة أيضا على أي نظام تشغيل يستند إلى Windows.
تتكون المهمة من خطوتين، كما هو موضح في المحتوى الذي يتبع سطر steps:. يدعم بناء جملة الخطوة سمة اسم اختيارية، والتي قد تساعد في فهم الغرض من الخطوة عند مراجعة تشغيل سير العمل. يعتمد باقي بناء الجملة على نوع الإجراء الذي تهدف خطوة معينة إلى تنفيذه. في هذا المثال، الخطوة الأولى هي التحقق من المستودع الحالي (الذي يقوم بتنزيل محتوى المستودع إلى النظام حيث يتم تشغيل المهمة)، بينما تقوم الخطوة الثانية بتشغيل الأمر echo، والذي يعرض رسالة مألوفة.
لدمج وظيفة CI/CD في مهام سير عمل GitHub Actions، يمكنك إضافة سلسلة من الخطوات (في مهمة واحدة أو أكثر) التي تنفذ إجراءات الإنشاء والاختبار والنشر التلقائية. بمجرد تشغيل تنفيذ سير العمل، يمكنك تتبع تقدمه بالانتقال إلى علامة التبويب "Actions" في مستودع GitHub الخاص بك.
ملاحظه
سيكون لديك فرصة للعمل مع أمثلة أكثر جدوى من مهام سير عمل GitHub Actions التي توضح تكامل CI/CD في مختبر هذه الوحدة.