DevOps & CI/CD: الأتمتة والنشر
CI/CD (التكامل والنشر المستمر) هي ممارسات DevOps الأساسية لأتمتة بناء واختبار ونشر التطبيقات. GitHub Actions تجعل هذه العملية سهلة ومباشرة.
الجزء الأول: مقدمة عن CI/CD
1.1 ما هو CI/CD؟
- CI (Continuous Integration): دمج التغييرات باستمرار واختبارها تلقائياً.
- CD (Continuous Delivery/Deployment): نشر التطبيقات تلقائياً بعد الاختبار.
💡 خلاصة:
- ✅ CI/CD تقلل الأخطاء وتسرع عملية التطوير.
⚙️ الجزء الثاني: GitHub Actions
2.1 إنشاء Workflow أساسي
name: CI Pipeline
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- run: npm install
- run: npm test خلاصة:
- ✅ workflows تُنشأ في ملف .github/workflows/
- ✅ on: تحدد متى يُشغل الـ workflow (push, pull_request).
🚀 الجزء الثالث: النشر التلقائي
3.1 Deploy على فرع main
name: Deploy
on:
push:
branches: [main]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Deploy to Server
run: echo "Deploying..." 💡 خلاصة:
- ✅ استخدم branches لتحديد الفرع المستهدف.
- ✅ النشر يتم تلقائياً عند كل push لـ main.
🐳 الجزء الرابع: بناء Docker
4.1 أتمتة بناء الصور
name: Docker Build
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Build Docker Image
run: docker build -t myapp . 💡 خلاصة:
- ✅ أتمتة بناء Docker توفر الوقت وتضمن الاتساق.
الجزء الخامس: Matrix Strategy
5.1 الاختبار على بيئات متعددة
name: Matrix Test
on: [push]
jobs:
test:
runs-on: ubuntu-latest
strategy:
matrix:
node: [16, 18, 20]
steps:
- uses: actions/checkout@v3
- name: Use Node
uses: actions/setup-node@v3
with:
node-version: MATRIX_NODE 💡 خلاصة:
- ✅ Matrix تتيح تشغيل نفس الـ job بإعدادات مختلفة.
- ✅ مثالي لاختبار التطبيق على إصدارات Node متعددة.
🔐 الجزء السادس: الأسرار والمتغيرات
6.1 استخدام Secrets بأمان
name: Secure Deploy
on: [push]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Use Secret
run: echo "API_KEY is set"
env:
API_KEY: SECRET_API_KEY خلاصة:
- ✅ Secrets تُخزن بأمان في Settings > Secrets.
- ✅ لا تضع مفاتيح API مباشرة في الكود!
📋 الجزء السابع: الملخص السريع
| المفهوم | الاستخدام |
|---|---|
| Workflow | ملف YAML يحدد خطوات CI/CD |
| Jobs | مجموعة من الخطوات تُنفذ معاً |
| Actions | خطوات جاهزة لإعادة الاستخدام |
| Secrets | تخزين آمن للمفاتيح الحساسة |
| Matrix | الاختبار على بيئات متعددة |
🎉 مبارك!
أصبحت الآن قادراً على أتمتة بناء ونشر تطبيقاتك باستخدام CI/CD.