أتمتة المهام على GitHub Actions: تشغيل الكود عند كل تحديث
يا هلا بالشباب! اليوم بنتكلم عن شيء يفك أزمة ويخلي حياتك كمبرمج أسهل بكثير: GitHub Actions. تخيل إنك كل ما تدف كود جديد (Push) على GitHub، الكود هذا يتشغل تلقائياً، يتفحص، أو حتى ينشر! هذا بالضبط اللي تسويه GitHub Actions. بدل ما تسوي كل شيء يدوي، خلي الروبوتات تشتغل عنك.
ليش نحتاج GitHub Actions؟
- أتمتة الاختبارات: كل ما تدف كود، تتأكد إن كل شيء شغال تمام ومفيش أخطاء جديدة.
- بناء ونشر التطبيقات: تبني تطبيقك وتنشره على السيرفرات بشكل تلقائي.
- فحص جودة الكود: تتأكد إن الكود بتاعك نظيف ومافيه مشاكل في التنسيق أو الأمان.
- توفير الوقت والجهد: بدال ما تكرر نفس الخطوات يدويًا، هي تسويها لك في ثواني.
كيف نخلي الكود يشتغل عند كل تحديث (Push)؟
الموضوع بسيط جداً. كل اللي عليك تسويه هو إنك تحدد حدث push في ملف الـ Workflow بتاعك. هذا يعني إن أي تغيير يتم دفعه (pushed) للريبو، راح يشغل الـ Workflow مباشرة.
ملاحظة سريعة: الـ Workflows هي ملفات YAML تحدد فيها الخطوات اللي تبغى GitHub Actions تسويها. لازم تكون موجودة في مجلد
.github/workflows/في الريبو بتاعك.
مثال عملي: تشغيل اختبارات بسيطة عند كل Push
خلونا نسوي مثال بسيط. بنسوي Workflow يشغل اختبارات Node.js كل ما نسوي git push.
أول شيء، سوي ملف جديد اسمه test-on-push.yml داخل مجلد .github/workflows/ في الريبو بتاعك. بعدين، حط الكود هذا فيه:
name: Run Tests on Push
on:
push:
branches:
- main
- develop
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: '18'
- name: Install dependencies
run: npm ci
- name: Run tests
run: npm test
شرح الكود خطوة بخطوة:
name: Run Tests on Push: هذا اسم الـ Workflow بتاعك، وبيظهر في واجهة GitHub Actions.on: push:: هنا نقول لـ GitHub Actions متى تشغل هذا الـ Workflow. في حالتنا، عند كل عمليةpush.branches: - main - develop: تقدر تحدد على أي فروع تبغى الـ Workflow يشتغل. هنا قلنا علىmainوdevelop. لو تبغاه يشتغل على كل الفروع، احذف هذا الجزء أو خليه فاضي.
jobs:: الـ Workflow ممكن يحتوي على وظيفة (job) أو أكثر. كل وظيفة تشتغل بشكل مستقل.build:: هذا اسم الوظيفة الأولى (والوحيدة في مثالنا).runs-on: ubuntu-latest: هنا نحدد البيئة اللي بتشتغل عليها الوظيفة.ubuntu-latestيعني أحدث نسخة من أوبونتو. ممكن تختار Windows أو macOS كمان.steps:: هنا تجي الخطوات الفعلية اللي بتسويها الوظيفة. كل خطوة لها اسم وتنفذ أمر معين.- name: Checkout repository: هذي خطوة أساسية، تستخدمactions/checkout@v4عشان تسحب الكود بتاعك من الريبو للبيئة اللي بتشتغل عليها.- name: Set up Node.js: هنا نستخدمactions/setup-node@v4عشان نثبت Node.js بالنسخة اللي نحددها (node-version: '18').- name: Install dependencies: هذا أمرnpm ciلتثبيت المكتبات والمكونات اللي يحتاجها مشروعك.- name: Run tests: وأخيراً، نشغل أوامر الاختبارات بتاعتنا باستخدامnpm test.
خلاص! وش اللي بيصير الحين؟
الحين، كل ما تسوي git push على فرع main أو develop، راح تشوف GitHub Actions تبدأ تشتغل. بتقدر تتابع تقدمها ونتائجها مباشرة من تبويب "Actions" في الريبو بتاعك على GitHub.
نصيحة أخيرة: لا تخاف تجرب! GitHub Actions قوية ومرنة جداً. ابدأ بالأساسيات وبعدين ابحث عن أكشنات جاهزة (Marketplace) تسوي لك أشياء معقدة بضغطة زر. وممكن تسوي أكشنات خاصة فيك بعد!
أتمنى يكون الدرس خفيف ومفيد. بالتوفيق يا مهندسين!