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

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.
ابدأ الآن
جاهز تبني مشروعك؟ اختر خادمك السحابي بالمواصفات اللي يحتاجها تطبيقك، أو راجع الباقات والأسعار.
مشاركة
