انتقل إلى المحتوى

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

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

إجراءات CI

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

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

نتائج CI

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

مستودع سي آي نشر عامل الإرساء الروابط المعطلة كودكيو إل PyPI ونشر المستندات
يولوف3 YOLOv3 CI نشر صور عامل الإرساء تحقق من الروابط المعطلة كودكيو إل
yolov5 YOLOv5 سي آي نشر صور عامل الإرساء تحقق من الروابط المعطلة كودكيو إل
ultralytics ultralytics سي آي نشر صور عامل الإرساء تحقق من الروابط المعطلة كودكيو إل النشر إلى PyPI ونشر المستندات
محور هب سي تحقق من الروابط المعطلة
مستندات تحقق من الروابط المعطلةالتحقق من المجالات نشر الصفحات

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

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

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

تغطية الكود

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

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

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

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

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

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

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

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

Ultralytics صورة كودكوف

الأسئلة المتداولة

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

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

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

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

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

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

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

ما هو دور نشر PyPI الآلي في Ultralytics ؟

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

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

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



تم الإنشاء 2023-11-12-2023، تم التحديث 2024-07-04
المؤلفون: جلين-جوتشر (8)، برهان-ق (1)

التعليقات