تخطي إلى المحتوى

التكامل المستمر (CI)

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

إجراءات CI

إليك وصف موجز لإجراءات CI الخاصة بنا:

  • CI: هذا هو اختبار CI الأساسي الخاص بنا والذي يتضمن تشغيل اختبارات الوحدة، وفحوصات التدقيق، وأحيانًا اختبارات أكثر شمولاً اعتمادًا على المستودع.
  • نشر Docker: يتحقق هذا الاختبار من نشر المشروع باستخدام Docker للتأكد من أن Dockerfile والبرامج النصية ذات الصلة تعمل بشكل صحيح.
  • الروابط المعطلة: يفحص هذا الاختبار قاعدة التعليمات البرمجية بحثًا عن أي روابط معطلة أو تالفة في ملفات markdown أو HTML الخاصة بنا.
  • CodeQL: CodeQL هي أداة من GitHub تقوم بإجراء تحليل دلالي لتعليماتنا البرمجية، مما يساعد في العثور على الثغرات الأمنية المحتملة والحفاظ على تعليمات برمجية عالية الجودة.
  • نشر PyPI: يتحقق هذا الاختبار مما إذا كان يمكن تجميع المشروع ونشره على PyPi دون أي أخطاء.

نتائج CI

فيما يلي جدول يوضح حالة اختبارات CI هذه لمستودعاتنا الرئيسية:

مستودع CI نشر Docker روابط معطلة CodeQL PyPI ونشر الوثائق
yolov3 YOLOv3 CI نشر صور Docker التحقق من الروابط المعطلة CodeQL
yolov5 YOLOv5 CI نشر صور Docker التحقق من الروابط المعطلة CodeQL
ultralytics ultralytics CI نشر صور Docker التحقق من الروابط المعطلة CodeQL النشر إلى PyPI ونشر الوثائق بنيات Conda
hub-sdk HUB-SDK CI التحقق من الروابط المعطلة CodeQL النشر إلى PyPI
hub HUB CI التحقق من الروابط المعطلة
mkdocs إجراءات Ultralytics CodeQL النشر إلى PyPI
thop إجراءات Ultralytics CodeQL النشر إلى PyPI
إجراءات إجراءات Ultralytics CodeQL النشر إلى PyPI
المستندات إجراءات Ultralytics التحقق من الروابط المعطلةالتحقق من النطاقات pages-build-deployment
كتيب إجراءات Ultralytics التحقق من الروابط المعطلة pages-build-deployment

تعرض كل شارة حالة التشغيل الأخير لاختبار CI المقابل على main فرع المستودع المعني. إذا فشل الاختبار، ستعرض الشارة حالة "فشل"، وإذا نجح، ستعرض حالة "نجاح".

إذا لاحظت فشل اختبار، فسيكون من الرائع أن تتمكن من الإبلاغ عنه من خلال مشكلة GitHub في المستودع المعني.

تذكر أن اختبار CI الناجح لا يعني أن كل شيء مثالي. يوصى دائمًا بمراجعة التعليمات البرمجية يدويًا قبل النشر أو دمج التغييرات.

تغطية الكود

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

التكامل مع codecov.io

في Ultralytics، قمنا بدمج مستودعاتنا مع codecov.io، وهي منصة شائعة عبر الإنترنت لقياس وتصور تغطية التعليمات البرمجية. يوفر Codecov رؤى تفصيلية ومقارنات التغطية بين الالتزامات والتراكبات المرئية مباشرة على التعليمات البرمجية الخاصة بك، مما يشير إلى الأسطر التي تمت تغطيتها.

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

نتائج التغطية

لإلقاء نظرة سريعة على حالة تغطية التعليمات البرمجية الخاصة بـ ultralytics حزمة python، قمنا بتضمين شارة وتصور أشعة الشمس لـ ultralytics نتائج التغطية. تعرض هذه الصور النسبة المئوية للتعليمات البرمجية التي تغطيها اختباراتنا، مما يوفر مقياسًا سريعًا لجهود الاختبار التي نبذلها. للحصول على التفاصيل الكاملة، يرجى الاطلاع على https://codecov.io/github/ultralytics/ultralytics.

مستودع تغطية الكود
ultralytics codecov

في الرسم البياني الشمسي أدناه، الدائرة الداخلية هي المشروع بأكمله، والابتعاد عن المركز عبارة عن مجلدات ثم، أخيرًا، ملف واحد. يمثل حجم ولون كل شريحة عدد العبارات والتغطية، على التوالي.

صورة Ultralytics Codecov

الأسئلة الشائعة

ما هو التكامل المستمر (CI) في Ultralytics؟

يتضمن التكامل المستمر (CI) في Ultralytics دمج وتجربة تغييرات التعليمات البرمجية تلقائيًا لضمان معايير عالية الجودة. يتضمن إعداد CI الخاص بنا تشغيل اختبارات الوحدة، وفحوصات التدقيق اللغوي، واختبارات شاملة. بالإضافة إلى ذلك، نقوم بتنفيذ نشر Docker، و فحوصات الروابط المعطلة، و تحليل CodeQL للثغرات الأمنية، و نشر PyPI لتعبئة وتوزيع برامجنا.

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

لماذا يعتبر تحليل CodeQL مهمًا لقاعدة بيانات Ultralytics؟

يعد تحليل CodeQL أمرًا بالغ الأهمية لـ Ultralytics لأنه يجري تحليلًا دلاليًا للكود للعثور على نقاط الضعف الأمنية المحتملة والحفاظ على معايير عالية الجودة. باستخدام CodeQL، يمكننا تحديد المخاطر في التعليمات البرمجية الخاصة بنا والتخفيف من حدتها بشكل استباقي، مما يساعدنا على تقديم حلول برمجية قوية وآمنة.

كيف تستخدم Ultralytics حاويات Docker للنشر؟

تستخدم Ultralytics برنامج Docker للتحقق من صحة نشر مشاريعنا من خلال إجراء CI مخصص. تضمن هذه العملية أن Dockerfile والبرامج النصية المرتبطة بها تعمل بشكل صحيح، مما يسمح ببيئات نشر متسقة وقابلة للتكرار والتي تعتبر ضرورية لحلول الذكاء الاصطناعي القابلة للتطوير والموثوقة.

ما هو دور النشر التلقائي لـ PyPI في Ultralytics؟

يضمن نشر PyPI التلقائي إمكانية تجميع مشاريعنا ونشرها دون أخطاء. هذه الخطوة ضرورية لتوزيع حزم Ultralytics' Python، مما يسمح للمستخدمين بتثبيت أدواتنا واستخدامها بسهولة عبر فهرس حزم Python (PyPI).

كيف تقيس Ultralytics تغطية التعليمات البرمجية ولماذا هي مهمة؟

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



📅 تم الإنشاء منذ سنة واحدة ✏️ تم التحديث منذ شهرين

تعليقات