I'm always excited to take on new projects and collaborate with innovative minds.

Phone

+20 115 052 9992

Website

https://ibrahimahmed.online/

Social Links

أتمتة مشاريع لارافيل: دليلك الشامل لعمل CI/CD Pipeline احترافي باستخدام GitHub Actions

أتمتة مشاريع لارافيل: دليلك الشامل لعمل CI/CD Pipeline احترافي باستخدام GitHub Actions هل تعبت من الروتين اليومي الممل؟ تخلصت من Bug في الكود، عملت Push، وبعدين

أتمتة مشاريع لارافيل: دليلك الشامل لعمل CI/CD Pipeline احترافي باستخدام GitHub Actions
Reading Count: 204

أتمتة مشاريع لارافيل: دليلك الشامل لعمل CI/CD Pipeline احترافي باستخدام GitHub Actions

هل تعبت من الروتين اليومي الممل؟ تخلصت من Bug في الكود، عملت Push، وبعدين دخلت على السيرفر (Server) بإيدك عشان تعمل Pull، وتعمل run للـ migrations، وتمسح الكاش، وتكتشف في الآخر إن في Test وقعت منك؟ كل ده بيضيع وقتك كمبرمج وممكن يخليك تغلط غلطات مكلفة. الحل في عالم الـ DevOps هو الـ CI/CD Pipeline، والنهاردة هنتعلم إزاي نعمل "أتمتة" (Automation) كاملة لمشاريع لارافيل (Laravel) باستخدام GitHub Actions.

يعني إيه CI/CD ومين المستفيد؟

الـ CI/CD اختصار لـ Continuous Integration و Continuous Deployment. ببساطة، هي دورة حياة برمجية بتخلي الكود بتاعك يمر باختبارات (Automated Tests) بمجرد ما تعمل Push، وإذا كله تمام، بيترفع للسيرفر أوتوماتيكياً. ده بيوفر عليك "وجع القلب" وبيخليك تركز في كتابة كود نضيف مش في التكرار الممل.

خطوة 1: إعداد الـ GitHub Actions

في مشروع لارافيل، الـ GitHub Actions بتشتغل عن طريق ملفات بتتحط في مسار .github/workflows/. هننشئ ملف جديد وليكن اسمه deploy.yml. الملف ده هو اللي هيحكم العملية كلها.

ده مثال لملف Workflow بيعمل Test للمشروع قبل ما يرفع أي حاجة:


name: Laravel CI/CD
on:
  push:
    branches: [ main ]
jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: Setup PHP
        uses: shivammathur/setup-php@v2
        with:
          php-version: '8.2'
      - name: Install Dependencies
        run: composer install --prefer-dist --no-progress
      - name: Run Tests
        run: php artisan test

خطوة 2: أتمتة الـ Deployment

بعد ما اتأكدنا إن الـ Tests شغالة، عايزين نبعت الكود للسيرفر. الطريقة الأكثر شيوعاً هي استخدام الـ SSH. تقدر تستخدم Action جاهزة زي appleboy/ssh-action عشان تنفذ أوامر على السيرفر بتاعك.


  deploy:
    needs: test
    runs-on: ubuntu-latest
    steps:
      - name: Deploy to Server
        uses: appleboy/ssh-action@master
        with:
          host: ${{ secrets.SERVER_HOST }}
          username: ${{ secrets.SERVER_USER }}
          key: ${{ secrets.SSH_PRIVATE_KEY }}
          script: |
            cd /var/www/my-laravel-app
            git pull origin main
            composer install --no-dev --optimize-autoloader
            php artisan migrate --force
            php artisan config:cache
            php artisan view:cache

خطوة 3: التعامل مع الـ Secrets بذكاء

اوعى تحط بيانات السيرفر أو الـ Database passwords جوه الكود بتاعك! GitHub بيوفر خاصية الـ Secrets في إعدادات الـ Repository. روح على Settings ثم Secrets and variables، وضف الـ SERVER_HOST والـ SSH_PRIVATE_KEY هناك. ده بيخلي الـ Pipeline بتاعك آمن (Secure) بنسبة 100%.

نصيحة من أخ لمبرمج زميل

بص يا بطل، الـ DevOps مش بس أدوات، دي "عقلية". في الأول الموضوع هيبان إنه معقد وبياخد وقت، لكن بمجرد ما تظبط الـ Pipeline بتاعك مرة واحدة، هتحس براحة نفسية مش طبيعية. نصيحتي ليك: ابدأ بـ Pipeline بسيط بيعمل Test بس، وبعدين طوره لـ Deployment، ومع الوقت هتلاقي نفسك بقيت متمكن من أدوات الـ Cloud والـ Infrastructure. مجال الـ Web Development بيتطور بسرعة، والناس اللي بتعرف تعمل "أتمتة" هي اللي قيمتها بتزيد في سوق العمل.


Share

Related posts

Apr 24, 2026 • 1 min read
Reading Count: 195
دليلك الشامل لكتابة اختبارات الوحدات (Unit Testing) في PHP و Laravel باحترافية

دليلك الشامل لكتابة اختبارات الوحدات (Unit Testing) في PHP و Laravel باحترافية يا مساء الفل على كل ا...

Apr 24, 2026 • 1 min read
Reading Count: 174
ازاي تبني تطبيقات Real-time احترافية باستخدام Laravel Reverb

ازاي تبني تطبيقات Real-time احترافية باستخدام Laravel Reverb لو كنت مبرمج Laravel، أكيد جالك وقت واح...

Apr 22, 2026 • 1 min read
Reading Count: 217
ازاي تبني نظام تسجيل دخول (Authentication) في لارافيل من الصفر؟

ازاي تبني نظام تسجيل دخول (Authentication) في لارافيل من الصفر؟ كتير مننا كمبرمجين بيعتمدوا بشكل كلي...