كلاود
أدلة

GitHub Actions: نشر تطبيقك تلقائياً على سيرفرك

كلاود|١١ أبريل ٢٠٢٦|2 دقائق قراءة|٢٧٦ مشاهدة
GitHub Actions: نشر تطبيقك تلقائياً على سيرفرك

Git push → tests → deploy. أتمتة نشر تطبيقك مع GitHub Actions. نشرح الإعداد مع SSH deploy.

النشر التلقائي مع GitHub Actions

GitHub Actions يجعل كل push على main branch ينتهي بتطبيق محدّث على السيرفر تلقائياً، بعد اجتياز الاختبارات.

Workflow كامل لتطبيق Laravel

name: Laravel Deploy

on:
 push:
 branches: [main]

jobs:
 test:
 runs-on: ubuntu-latest
 steps:
 - uses: actions/checkout@v4
 - name: Setup PHP
 uses: shivammathur/setup-php@v2
 with:
 php-version: '8.3'
 - name: Install dependencies
 run: composer install --no-dev --optimize-autoloader
 - name: Run tests
 run: php artisan test

 deploy:
 needs: test
 runs-on: ubuntu-latest
 if: github.ref == 'refs/heads/main'
 steps:
 - name: Deploy via SSH
 uses: appleboy/ssh-action@v1.0.0
 with:
 host: ${{ secrets.SERVER_HOST }}
 username: ${{ secrets.SERVER_USER }}
 key: ${{ secrets.SSH_PRIVATE_KEY }}
 script: |
 cd /var/www/myapp
 git pull origin main
 composer install --no-dev --optimize-autoloader
 php artisan migrate --force
 php artisan config:cache
 php artisan route:cache
 php artisan queue:restart
 sudo systemctl reload php8.3-fpm

إعداد الأسرار (Secrets)

# إنشاء SSH key مخصصة
ssh-keygen -t ed25519 -C "github-actions-deploy" -f deploy_key
cat deploy_key.pub >> ~/.ssh/authorized_keys

في GitHub: Settings → Secrets and variables → Actions:

Secret القيمة
SERVER_HOST عنوان IP السيرفر
SERVER_USER اسم المستخدم
SSH_PRIVATE_KEY المفتاح الخاص

نشر تطبيق Next.js

name: Next.js Deploy
on:
 push:
 branches: [main]

jobs:
 build-and-deploy:
 runs-on: ubuntu-latest
 steps:
 - uses: actions/checkout@v4
 - uses: actions/setup-node@v4
 with:
 node-version: '20'
 cache: 'npm'
 - run: npm ci
 - run: npm run build
 env:
 NODE_ENV: production
 - name: Deploy
 uses: appleboy/ssh-action@v1.0.0
 with:
 host: ${{ secrets.SERVER_HOST }}
 username: deploy
 key: ${{ secrets.SSH_PRIVATE_KEY }}
 script: |
 cd /var/www/nextapp
 git pull origin main
 npm ci --production
 npm run build
 pm2 restart nextapp

Caching لتسريع الـ Builds

- name: Cache Composer packages
 uses: actions/cache@v3
 with:
 path: vendor
 key: ${{ runner.os }}-php-${{ hashFiles('**/composer.lock') }}

Caching يخفض وقت الـ build من 3-4 دقائق لأقل من دقيقة.

الخلاصة

GitHub Actions يلغي الأخطاء البشرية في النشر اليدوي. السيرفرات على كلاود (cloud.net.sa) تدعم هذا الـ workflow كاملاً — SSH جاهز، لا قيود على deployments.


ابدأ الآن

جاهز تبني مشروعك؟ اختر خادمك السحابي بالمواصفات اللي يحتاجها تطبيقك، أو راجع الباقات والأسعار.

مشاركة