النشر باستخدام 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 يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- تهيئة Nginx وPHP-FPM
- متغيرات البيئة وملفات .env
- النشر باستخدام GitHub Actions
- إنشاء حاويات لتطبيق PHP