أساسيات CI/CD في Linux: Build, Test, Deploy بشكل عملي

بعد تعلم Docker، الخطوة الطبيعية في DevOps هي أتمتة دورة التسليم عبر CI/CD.

الهدف: كل تغيير في الكود يمر بخطوات موحدة وسريعة بدل النشر اليدوي العشوائي.

ما هو CI/CD ولماذا مهم؟

  • تقليل أخطاء النشر اليدوي
  • تسريع تسليم الميزات والإصلاحات
  • رفع جودة الكود عبر اختبارات تلقائية

الفرق بين CI وCD

المفهوم التركيز
CI دمج الكود + Build + Test تلقائي
CD تسليم/نشر التغييرات بطريقة آمنة ومتكررة

Pipeline أساسي في Linux/DevOps

  1. Checkout: جلب الكود من Git
  2. Lint: فحص جودة الكود
  3. Test: تشغيل الاختبارات
  4. Build: بناء artifact أو Docker image
  5. Deploy: نشر على staging/production

مثال Flow عملي من Git إلى الإنتاج

  • Developer يدفع commit إلى branch
  • CI يشغل الاختبارات تلقائيًا
  • إذا نجحت، يتم بناء image وإرسالها للregistry
  • CD ينشر النسخة على بيئة staging ثم production

أدوات CI/CD الشائعة

  • GitHub Actions
  • GitLab CI/CD
  • Jenkins
  • CircleCI

الأداة أقل أهمية من منطق pipeline نفسه.

مثال YAML مبسط لـ CI Pipeline

stages:
  - test
  - build
  - deploy

test:
  script:
    - npm ci
    - npm test

build:
  script:
    - docker build -t myapp:$CI_COMMIT_SHA .

deploy:
  script:
    - ./deploy.sh
  when: manual

ربط CI/CD مع Docker

docker build -t registry.example.com/myapp:$COMMIT_SHA .
docker push registry.example.com/myapp:$COMMIT_SHA

هذا النمط يجعل النشر يعتمد على image versioned بدل ملفات مبعثرة.

أفضل ممارسات CI/CD للمبتدئ

  • اجعل الاختبارات شرطًا قبل النشر
  • افصل بين staging وproduction
  • استخدم secrets manager بدل وضع الأسرار في الكود
  • احتفظ بسجل deploy واضح (who/what/when)

استراتيجية Rollback عند فشل النشر

# مثال عام:
kubectl rollout undo deployment/myapp
# أو إعادة نشر image سابقة مستقرة

لا تكتمل أي Pipeline بدون خطة rollback واضحة.

نصيحة عملية: ابدأ Pipeline بسيط (test + build) ثم أضف deploy التدريجي بعد استقرار الأساس.

أخطاء شائعة في تطبيق CI/CD

  • النشر المباشر دون اختبارات
  • دمج build وdeploy في خطوة واحدة بلا ضوابط
  • تسريب secrets في logs
  • عدم وجود rollback plan

تمرين عملي: تصميم Pipeline لمشروع بسيط

  1. حدد أوامر test لمشروعك
  2. أضف خطوة build (مثلا Docker image)
  3. أضف deploy إلى staging فقط
  4. أضف شرط manual قبل production

إذا استطعت كتابة pipeline بهذا التسلسل، فأنت تفهم أساس CI/CD بشكل صحيح.

FAQ: أسئلة شائعة حول CI/CD Basics

ما المقصود بـ CI/CD؟

CI/CD هي ممارسات أتمتة لدمج الكود واختباره ونشره بسرعة وبشكل متكرر وآمن.

ما الفرق بين CI وCD؟

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

ما أهم مراحل Pipeline الأساسية؟

المراحل الأساسية غالبا: lint/build/test ثم package أو image build ثم deploy مع تحقق بعد النشر.

الخطوة التالية

في الدرس القادم سنتعلم Git workflows العملية على Linux.

التالي: Git Linux Workflows
المحرر الذكي

اكتب الكود وشاهد النتيجة فوراً

جرب الآن مجاناً
قناة ديف عربي

تابع أحدث الدروس والتحديثات مباشرة على واتساب

انضم الآن