.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، مما يقلل الوقت ويزيد من جودة المنتج.
تعليقات
إرسال تعليق