0Pricing
PHP Academy · درس

النشر باستخدام GitHub Actions

أتمتوا خطوات البناء والاختبار والنشر عبر SSH في سير عمل GitHub Actions

النشر باستخدام GitHub Actions درس مجاني في PHP Academy على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في PHP Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة PHP Academy 4 دروس في المجموع.

ما GitHub Actions؟

GitHub Actions منصة CI/CD مدمجة في GitHub. وتُشغَّل مسارات العمل المعرّفة في .github/workflows/*.yml تلقائيًا عند أحداث الدفع أو طلبات السحب أو وفق جدول زمني.

البنية الأساسية لمسار العمل

يتكون مسار العمل من مهمة واحدة أو أكثر، وتحتوي كل مهمة على خطوات.

# .github/workflows/deploy.yml
name: Deploy

on:
  push:
    branches: [main]

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Set up 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: vendor/bin/phpunit

خطوة النشر عبر SSH

انشر التطبيق إلى خادم عبر SSH بعد نجاح الاختبارات.

      - name: Deploy to server
        uses: appleboy/ssh-action@v1
        with:
          host: ${{ secrets.SERVER_HOST }}
          username: ${{ secrets.SERVER_USER }}
          key: ${{ secrets.SSH_PRIVATE_KEY }}
          script: |
            cd /srv/myapp
            git pull origin main
            composer install --no-dev --optimize-autoloader
            php artisan migrate --force
            php artisan config:cache
            php artisan route:cache
            sudo systemctl reload php8.3-fpm

أسرار GitHub

خزّن القيم الحساسة، مثل مفاتيح SSH ورموز API وكلمات مرور قواعد البيانات، على هيئة أسرار مشفّرة للمستودع في الإعدادات ← الأسرار والمتغيرات.

التخزين المؤقت للاعتماديات

خزّن حزم Composer مؤقتًا بين عمليات التشغيل لتسريع مسارات العمل.

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

تشغيل الاختبارات

أدرج حاوية خدمة MySQL أو PostgreSQL لاختبارات التكامل.

services:
  mysql:
    image: mysql:8
    env:
      MYSQL_DATABASE: test
      MYSQL_ROOT_PASSWORD: secret
    ports: [3306:3306]

متغيرات البيئة في Actions

مرّر الأسرار إلى خطوات مسار العمل باعتبارها متغيرات بيئة.

      - name: Run tests
        env:
          DB_HOST: 127.0.0.1
          DB_DATABASE: test
          DB_PASSWORD: ${{ secrets.DB_PASSWORD }}
        run: vendor/bin/phpunit

بوابات جودة الشيفرة

امنع عمليات النشر إذا فشلت فحوصات جودة الشيفرة.

      - name: PHPStan static analysis
        run: vendor/bin/phpstan analyse src --level=6
      - name: PHP_CodeSniffer
        run: vendor/bin/phpcs src --standard=PSR12

الاختبار بالمصفوفة

اختبر التطبيق باستخدام إصدارات متعددة من PHP في الوقت نفسه.

jobs:
  test:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        php: ["8.2", "8.3"]
    steps:
      - uses: shivammathur/setup-php@v2
        with:
          php-version: ${{ matrix.php }}

استراتيجيات النشر

الأساليب الشائعة: git pull المباشر (بسيط)، وrsync (مزامنة سريعة للملفات)، والنشر الأزرق-الأخضر (من دون توقف)، وDeployer PHP (نشر آلي من دون توقف). اختر الأسلوب بناءً على مدى تحمّل التوقف.

الملخص

عرّف مسارات العمل في .github/workflows/*.yml. شغّل الاختبارات عند كل عملية دفع، وانشر عند دمج التغييرات في الفرع الرئيسي. خزّن الاعتماديات مؤقتًا، واحفظ الأسرار في GitHub Secrets، وأضف بوابات جودة قبل النشر.

تحقق سريع

أين تُخزَّن القيم الحساسة، مثل مفاتيح SSH، لاستخدامها في GitHub Actions؟

الأسئلة الشائعة

هل درس «النشر باستخدام GitHub Actions» مجاني؟

نعم — نص درس «النشر باستخدام GitHub Actions» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة PHP Academy، انتقل إلى CoddyKit PRO. تتضمن دورة PHP Academy 4 دروس في المجموع.

ماذا ستتعلم في «النشر باستخدام GitHub Actions»؟

أتمتوا خطوات البناء والاختبار والنشر عبر SSH في سير عمل GitHub Actions تتمرن على PHP Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ PHP Academy؟

لا تُشترط خبرة سابقة. PHP Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.

كم من الوقت يستغرق درس «النشر باستخدام GitHub Actions»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس PHP Academy هذا؟

نعم. كل درس في PHP Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. تهيئة Nginx وPHP-FPM
  2. متغيرات البيئة وملفات .env
  3. النشر باستخدام GitHub Actions
  4. إنشاء حاويات لتطبيق PHP
← العودة إلى PHP Academy