محتويات الدورة

CI/CD / أسس الدمج والمرشح / الدرس 1

الدمج والتسليم والنشر وعود مختلفة

حدّد ما يثبته نجاح خط العمل وأين يبقى قرار الإصدار مطلوباً.

وقت القراءة التقريبي: 4 دقيقةتاريخ مراجعة المحتوى
في هذه الصفحة

أهداف الدرس

  • التمييز بين الدمج المستمر والتسليم المستمر والنشر المستمر.
  • صياغة عقد إصدار محدود لتطبيق افتراضي.

الدمج يفحص التغيير المشترك

يعني الدمج المستمر إدخال تغييرات صغيرة باستمرار في خط تطوير مشترك وفحص النتيجة المجمّعة. لا يزيل البناء الليلي لفروع طويلة العمر مخاطر الدمج مهما نجح كل فرع منفرداً. تخيّل تطبيق Parcel الافتراضي لطباعة ملصقات العناوين: يغيّر تعديل دالة التنسيق ويغيّر تعديل آخر مستدعيها. قد تنجح اختبارات الفرعين ثم يفشل الجمع بينهما. ينبغي أن يمنح CI دليلاً سريعاً عن المراجعة التي ستندمج فعلاً، وأن يُظهر الإخفاق لمن يستطيع إصلاحه.

التسليم يحافظ على مرشح قابل للإصدار

يوسّع التسليم المستمر هذه التغذية الراجعة إلى مسار متكرر ينتج مرشح إصدار عند الطلب. وقد يتطلب إطلاقه للإنتاج قراراً تجارياً أو موافقة صريحة. أما النشر المستمر فيتبنى التغييرات المؤهلة في الإنتاج آلياً. هذه ممارسات تشغيلية لا يضمنها اسم ملف pipeline.yaml. إذا نجح التجميع ثم تطلب التغليف خطوات يدوية غير موثقة، فمسار التسليم لم يصبح موثوقاً بعد. حدّد كل إدخال يدوي متبقٍ وميّز القرار المشروع عن مصدر الاختلاف غير الضروري.

text سلسلة تسليم مفاهيمية
source revision -> build -> tests -> release candidate
release candidate -> approval -> environment adoption

تمثل الأسهم اعتماد الأدلة بعضها على بعض. تغيّر الموافقة التفويض ولا تغيّر بايتات المرشح. هذا مخطط تعليمي لا يهيئ مشغّلاً ولا ينشر شيئاً.

امنح النجاح معنى دقيقاً

عرّف نجاح Parcel بأنه مراجعة اجتازت اختبارات المنسق وأنتجت حزمة واحتفظت ببيانها. لا يثبت ذلك توافق ترحيل قاعدة البيانات أو توفر شركة شحن خارجية أو نجاح جميع رحلات العملاء. يذكر العقد المفيد الفحوص المشمولة والاستثناءات المعروفة وهوية الناتج وصاحب القرار التالي. دون هذا الحد، يستخدم الفريق الأيقونة الخضراء نفسها للدلالة على التجميع أو جاهزية الإصدار أو سلامة الإنتاج، ثم يكتشف اختلاف المعاني أثناء الحادث.

نمذجة الجاهزية دون لمس البنية التحتية

يمثل البرنامج المحلي الكامل التالي ثلاث ملاحظات مطلوبة. ويعامل النتيجة المفقودة كإخفاق بدلاً من قبولها بصمت. تحتاج الأنظمة الفعلية حالات أغنى مثل الإلغاء والتخطي وانتهاء الصلاحية والموافقة، لكن النموذج الصغير يوضح القاعدة الأساسية: يجب أن ترتبط كل ملاحظة بالمرشح المقصود. لا تستوفي نتيجة الأمس مراجعة اليوم لمجرد تطابق اسم المهمة. احمل هوية المراجعة مع الدليل قبل دمج النتائج.

python سجل جاهزية ناقص عمداً
required = {"build", "unit", "manifest"}
observed = {"build": True, "unit": True}
missing = sorted(required - observed.keys())
print("ready" if not missing and all(observed.values()) else "blocked")
print(missing)
الناتج المتوقع
blocked
['manifest']

تغيب ملاحظة manifest لذلك تُحجب الجاهزية. يفحص البرنامج بيانات افتراضية في الذاكرة ولا يستعلم عن حالة نظام CI.

اجعل الإخفاق قابلاً للمعالجة

تحتاج عملية التسليم مسؤولين عن المصدر وبنية البناء والتغليف وتفويض الإصدار والتحقق وقت التشغيل. قد يؤدي شخص واحد أدواراً عدة في فريق صغير، لكن المسؤوليات تبقى مختلفة. عندما تفشل اختبارات الوحدة لا يعوض الموافق ذلك بالضغط على زر يدوي. وعندما يتعطل المشغّل لا يصلح تغيير منطق التطبيق المشكلة. سجّل أول عقد أخفق واحتفظ بدليل كافٍ غير حساس لإعادة إنتاجه وأرسله للمسؤول. تعتمد سرعة التغذية الراجعة على إجراء واضح، لا على كثرة التشغيل الآلي فقط.

الأخطاء الشائعة وإصلاحها

يوصف نجاح البناء بأنه سلامة الإنتاج.

لماذا يحدث؟
توسع معنى دليل التجميع إلى ما يتجاوز نطاق المهمة.
كيف تصلحه؟
اذكر الفحوص الناجحة بدقة وتحقق من سلوك التشغيل منفصلاً.
كيف تتجنب تكراره؟
انشر معنى كل حالة مطلوبة واستثناءاتها.

يغيّر التغليف اليدوي المرشح الموافق عليه.

لماذا يحدث؟
يعيد مسار الإصدار البناء أو يعدل البايتات بعد الاختبار.
كيف تصلحه؟
غلّف مرة واحدة ومرّر مرشحاً محدد الهوية عبر حدود القرار.
كيف تتجنب تكراره؟
اربط هوية الحزمة بأدلة الاختبار والموافقة.

يُعد بناء فرع مجدول دمجاً مستمراً.

لماذا يحدث؟
يبقى العمل منفصلاً حتى دمج كبير متأخر.
كيف تصلحه؟
ادمج تغييرات أصغر وافحص المراجعة المجمعة باستمرار.
كيف تتجنب تكراره؟
راقب تأخر الدمج واجعل عمر الفروع مناسباً لقدرة الفريق على المراجعة.

اختبر فهمك

1. يمتلك Parcel اختبارات آلية وموافقة إنتاج يدوية. هل هذا نشر مستمر؟

اعرض الحل المشروح

يمكن أن يكون تسليماً مستمراً إذا أنتجت كل مراجعة مؤهلة مرشحاً قابلاً للإصدار بصورة موثوقة. القرار اليدوي يعني أن تبني الإنتاج ليس نشراً مستمراً آلياً. افحص قابلية تكرار التغليف والتحقق قبل ادعاء أي مستوى.

2. نجح فحص التنسيق للمراجعة A والتغليف للمراجعة B. هل يجوز جمعهما؟

اعرض الحل المشروح

لا. يجب أن تخص الأدلة المرشح نفسه ومدخلات بناء متوافقة. أعد الفحص اللازم للمراجعة B أو ضع قاعدة تكافؤ صريحة خضعت للمراجعة. لا يثبت اسم المهمة المشترك ولا الأيقونة الخضراء ذلك التكافؤ.

أهم ما تعلمته

  • عرّف وعد الإصدار قبل تصميم المهام.
  • المرشح والموافقة وملاحظة التشغيل تجيب عن أسئلة منفصلة.

المراجع الرسمية