.NET Core - CI/CD باستخدام GitHub Actions أو Azure DevOps

7.4 .NET Core - CI/CD باستخدام GitHub Actions أو Azure DevOps

CI/CD تعني "التكامل المستمر / النشر المستمر" (Continuous Integration / Continuous Deployment)، وهي آلية تلقائية لبناء واختبار ونشر الكود عند كل تحديث. في هذا الدرس سنتعرف على استخدام GitHub Actions وAzure DevOps لتطبيقات ‎.NET Core.


🔹 ما هو GitHub Actions؟

GitHub Actions هي منصة تلقائية مدمجة في GitHub تتيح لك تشغيل سكربتات عند أحداث معينة (مثل push أو pull request).

🔧 1) إعداد GitHub Actions لبيئة .NET

في مجلد مشروعك على GitHub، أنشئ الملف التالي: .github/workflows/dotnet.yml


name: Build and Deploy

on:
  push:
    branches: [ "main" ]

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v3

    - name: Setup .NET
      uses: actions/setup-dotnet@v3
      with:
        dotnet-version: '8.0.x'

    - name: Restore dependencies
      run: dotnet restore

    - name: Build
      run: dotnet build --no-restore

    - name: Test
      run: dotnet test --no-build --verbosity normal

    - name: Publish
      run: dotnet publish -c Release -o ./publish

✅ يقوم هذا السكربت ببناء مشروعك تلقائيًا عند كل Push إلى فرع main.

🔹 2) ربط GitHub بـ FTP أو Web Deploy

  • استخدم Action مثل: SamKirkland/FTP-Deploy-Action لنشر الملفات عبر FTP
  • أو ارفع ملفات publish إلى Azure أو سيرفر يدويًا من خلال سكربت PowerShell

🧰 3) Azure DevOps (بديل احترافي)

  • قم بإنشاء مشروع جديد على Azure DevOps
  • أنشئ Pipeline جديد باستخدام YAML

trigger:
- main

pool:
  vmImage: 'windows-latest'

steps:
- task: UseDotNet@2
  inputs:
    packageType: 'sdk'
    version: '8.0.x'

- script: dotnet build --configuration Release
  displayName: 'Build project'

- script: dotnet test
  displayName: 'Run tests'

- script: dotnet publish -c Release -o $(Build.ArtifactStagingDirectory)
  displayName: 'Publish App'

📦 4) خيارات النشر التلقائي (Deployment)

  • نشر إلى IIS باستخدام Web Deploy
  • نشر إلى Azure App Service مباشرة
  • نشر صورة Docker إلى Azure Container Registry أو Docker Hub

🧪 نصائح مهمة

  • استخدم Secrets لتخزين كلمات المرور داخل GitHub Actions
  • قسّم مراحل CI وCD إلى خطوات مستقلة ليسهل صيانتها
  • قم بتفعيل الإشعارات عند الفشل لإصلاح المشاكل بسرعة

🔹 الخلاصة

باستخدام CI/CD يمكنك نشر تطبيقك تلقائيًا دون تدخل يدوي بعد كل تحديث. GitHub Actions وAzure DevOps يوفّران أدوات مرنة وسهلة للتكامل مع مشاريع ‎.NET Core، مما يقلل الوقت ويزيد من جودة المنتج.

تعليقات

المشاركات الشائعة من هذه المدونة

C# - Arrays

Entity Framework - ما هو ORM؟ ونبذة عن Dapper وNHibernate

Entity Framework - مقدمة عن Entity Framework