تخطَّ إلى المحتوى

🚀 شرح DevOps و CI/CD

إدارة الإصدارات (Semantic Versioning)

الدرس 11 من 25· ⏱ 2 دقائق قراءة

ما هو Semantic Versioning؟

نظام ترقيم من ثلاثة أرقام: MAJOR.MINOR.PATCH

  • MAJOR — تغييرات غير متوافقة مع الإصدارات السابقة
  • MINOR — إضافة ميزات جديدة مع بقاء التوافق
  • PATCH — إصلاح أخطاء مع بقاء التوافق

مثال

v1.0.0 → v1.0.1  (إصلاح خطأ)
v1.0.1 → v1.1.0  (إضافة ميزة جديدة)
v1.1.0 → v2.0.0  (تغيير جذري)

Git Tags

# إنشاء tag
git tag v1.0.0

# إنشاء tag مع رسالة
git tag -a v1.0.0 -m "الإصدار الأول"

# رفع tag إلى GitHub
git push origin v1.0.0

# رفع جميع tags
git push --tags

أتمتة الإصدارات مع GitHub Actions

name: إنشاء إصدار جديد

on:
  push:
    tags:
      - "v*"

jobs:
  release:
    runs-on: ubuntu-latest
    permissions:
      contents: write
    steps:
      - uses: actions/checkout@v4
      - run: npm ci && npm run build
      - uses: softprops/action-gh-release@v1
        with:
          generate_release_notes: true
          files: |
            dist/*.zip
            dist/*.tar.gz

أتمتة رفع الإصدار (Bump Version)

jobs:
  version:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: |
          git config user.name "github-actions"
          git config user.email "actions@github.com"
          npm version patch
          git push --follow-tags

⚠️ تجنب الدفع المباشر إلى الفرع الرئيسي من الـ workflow لتجنب حلقات اللانهاية (infinite loops). استخدم حدث push مع tags بدلاً من branches.

Conventional Commits

نظام لكتابة رسائل الـ commit بشكل منظم:

feat: إضافة نظام تسجيل الدخول
fix: إصلاح خطأ في عرض الصفحة الرئيسية
BREAKING CHANGE: تغيير واجهة API بالكامل

التوافق مع SemVer

feat        → MINOR
fix         → PATCH
BREAKING    → MAJOR

مثال: Conventional Commits + CI

jobs:
  lint-commits:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: wagoid/commitlint-github-action@v5

🎯 التالي: البيئات: Dev / Staging / Production

شرح إدارة الإصدارات (Semantic Versioning) — DevOps و CI/CD بالعربي
إدارة الإصدارات (Semantic Versioning)DevOps و CI/CD بالعربي · The Code Fix

هل كان هذا الدرس مفيدًا؟