🐙 CI/CD احترافي

GitHub Actions للنشر التلقائي — CI/CD متكامل في 4 خطوات

كل Push إلى GitHub ينشر تطبيقك تلقائياً على غيمة. مع اختبارات تلقائية، Preview Deployments لكل Pull Request، ونشر متعدد البيئات. كل هذا مجاناً.

ما هو CI/CD ولماذا تحتاجه؟

🤖 CI/CD = Continuous Integration / Continuous Deployment

باختصار: بدل ما تنشر تطبيقك يدوياً كل مرة، GitHub Actions ينشر تلقائياً مع كل Push. الفوائد: (1) توفير الوقت — لا حاجة للنشر اليدوي، (2) تقليل الأخطاء — اختبارات تلقائية تمنع نشر كود معطوب، (3) سرعة أكبر — التحديثات تصل للمستخدمين في ثوانٍ، (4) تعاون أفضل — كل Pull Request له معاينة خاصة.

🎉 لا تريد تعقيد GitHub Actions؟

غيمة توفر تكاملاً مدمجاً مع GitHub بدون أي إعداد. فقط اربط المستودع من لوحة التحكم — والنشر التلقائي يعمل فوراً. بدون YAML، بدون Secrets، بدون تعقيد. للمطورين الذين يريدون تحكماً كاملاً — تابع قراءة هذا الدليل.

إعداد GitHub Actions — 4 خطوات فقط

1

احصل على API Key من غيمة

لوحة تحكم غيمة → Settings → API Keys → Generate New Key. انسخ المفتاح — سيظهر مرة واحدة فقط. احتفظ به في مكان آمن.

2

أضف المفتاح إلى GitHub Secrets

في مستودع GitHub الخاص بك: Settings → Secrets and variables → Actions → New repository secret. الاسم: GHAYMAH_API_KEY، القيمة: المفتاح الذي نسخته. ⚠️ لا تضع المفتاح في الكود أبداً!

3

أنشئ ملف workflow

في مستودعك، أنشئ: .github/workflows/deploy.yml

name: Deploy to Ghaymah

on:
  push:
    branches: [main]

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Deploy to Ghaymah
        uses: ghaymah-systems/deploy-action@v1
        with:
          api-key: ${{ secrets.GHAYMAH_API_KEY }}
          app-name: my-app
4

ارفع التغييرات — وشاهد السحر!

git add .github/workflows/deploy.yml
git commit -m "Add GitHub Actions deployment"
git push origin main

اذهب إلى تبويب Actions في مستودع GitHub — ستشاهد النشر يعمل تلقائياً! 🎉

وصفات متقدمة لـ CI/CD

🧪 تشغيل الاختبارات قبل النشر

امنع نشر الكود المعطوب بإضافة الاختبارات:

jobs:
  test-and-deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      
      - name: Setup Node.js
        uses: actions/setup-node@v4
        with:
          node-version: 20
          cache: 'npm'
      
      - name: Install & Test
        run: |
          npm ci
          npm test
          npm run lint
      
      - name: Deploy to Ghaymah
        if: success()  # ينشر فقط إذا نجحت الاختبارات
        uses: ghaymah-systems/deploy-action@v1
        with:
          api-key: ${{ secrets.GHAYMAH_API_KEY }}

🌿 Preview Deployments لكل Pull Request

on:
  pull_request:
    branches: [main]

jobs:
  preview:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: ghaymah-systems/deploy-action@v1
        with:
          api-key: ${{ secrets.GHAYMAH_API_KEY }}
          app-name: preview-pr-${{ github.event.number }}
          preview: true
          
      - name: Comment PR with preview URL
        uses: actions/github-script@v7
        with:
          script: |
            github.rest.issues.createComment({
              ...context.repo,
              issue_number: context.issue.number,
              body: `🚀 Preview: https://preview-pr-${context.issue.number}.ghaymah.app`
            })

🏗️ نشر متعدد البيئات (Staging + Production)

# .github/workflows/deploy-staging.yml
on:
  push:
    branches: [develop]
jobs:
  deploy-staging:
    # ... نفس الخطوات مع app-name: my-app-staging

# .github/workflows/deploy-production.yml
on:
  push:
    branches: [main]
jobs:
  deploy-production:
    # ... نفس الخطوات مع app-name: my-app

نصائح احترافية لـ CI/CD

🔑

أمان المفاتيح أولاً

استخدم GitHub Secrets دائماً. لا تضع API Keys في الكود أو ملفات workflow. استخدم ${{ secrets.KEY_NAME }} للإشارة إليها.

⏱️

سرّع البناء بـ Caching

استخدم actions/cache لتخزين node_modules أو طبقات Docker. البناء يصبح أسرع 5-10 مرات.

📋

راقب حالة النشر

أضف Badge في README: [![Deploy](https://github.com/user/repo/actions/workflows/deploy.yml/badge.svg)](https://github.com/user/repo/actions)

أسئلة شائعة عن GitHub Actions والنشر التلقائي

كيف أربط GitHub Actions بغيمة للنشر التلقائي؟+

هل GitHub Actions مجاني؟+

كيف أضيف اختبارات تلقائية قبل النشر؟+

كيف أنشئ بيئة تجريبية (Staging) منفصلة عن الإنتاج؟+

ارفع كودك — ودع الباقي علينا

GitHub Actions + غيمة = نشر تلقائي كامل. جربه مجاناً 30 يوماً.

ابدأ الآن 🚀
راسلنا الآنراسلنا الآن