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 — 4 خطوات فقط
احصل على API Key من غيمة
لوحة تحكم غيمة → Settings → API Keys → Generate New Key. انسخ المفتاح — سيظهر مرة واحدة فقط. احتفظ به في مكان آمن.
أضف المفتاح إلى GitHub Secrets
في مستودع GitHub الخاص بك: Settings → Secrets and variables → Actions → New repository secret. الاسم: GHAYMAH_API_KEY، القيمة: المفتاح الذي نسخته. ⚠️ لا تضع المفتاح في الكود أبداً!
أنشئ ملف 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ارفع التغييرات — وشاهد السحر!
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: [](https://github.com/user/repo/actions)
أسئلة شائعة عن GitHub Actions والنشر التلقائي
كيف أربط GitHub Actions بغيمة للنشر التلقائي؟+
هل GitHub Actions مجاني؟+
كيف أضيف اختبارات تلقائية قبل النشر؟+
كيف أنشئ بيئة تجريبية (Staging) منفصلة عن الإنتاج؟+
استكشف المزيد
ارفع كودك — ودع الباقي علينا
GitHub Actions + غيمة = نشر تلقائي كامل. جربه مجاناً 30 يوماً.
ابدأ الآن 🚀