ما هي أداة التكامل المستمر الأفضل لمشروع C++؟[مغلق]

StackOverflow https://stackoverflow.com/questions/145586

  •  02-07-2019
  •  | 
  •  

سؤال

يعد نظام Cruisecontrol وHudson من أنظمة التكامل المستمر المشهورة.على الرغم من أن كلا النظامين قادران على القيام بالإنشاءات التلقائية المستمرة بشكل جيد، إلا أنه يبدو من الأسهل كثيرًا إنشاء برنامج نصي للبناء الدفعي أو bash، ثم استخدام برنامج جدولة Windows أو cron لجدولة عمليات الإنشاء.

هل هناك أنظمة تكامل مستمر أفضل متاحة لمشاريع C++؟أم أن مجرد استخدام البرنامج النصي والمجدول هو الطريقة الأبسط؟

هل كانت مفيدة؟

المحلول

لقد تم استخدام مثبت السرعة لـ CI في مشروع C++.على الرغم من أن هذا هو الشيء الوحيد الذي نستخدمه من أجل ant، إلا أن البرنامج النصي لبناء النمل لـ CruiseControl يبدأ فقط برنامج البناء العادي الخاص بنا، لذا فهو بسيط جدًا ولم نكن بحاجة إلى تحديثه منذ فترة طويلة.ولذلك فإن حقيقة أن CrusieControl يعتمد على Java لم تكن مشكلة على الإطلاق بالنسبة لنا.

الفوائد الرئيسية لاستخدام شيء مثل التحكم في السرعة هي

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

بالطبع يمكنك كتابة السيناريو بنفسك الذي يفعل كل هذا، ولكن لماذا يعمل كل هذا؟على المدى الطويل، ربما تكون التكلفة الأولية الإضافية لإعداد CruiseControl (أو شيء مشابه) أقل بكثير من تكلفة صيانة وتحديث البرنامج النصي المخصص لبناء CI.

إذا كان كل ما تحتاجه هو إطلاق إصدار يومي وكان البرنامج النصي البسيط الذي يبدأه cron كافيًا لاحتياجاتك، فافعل ذلك بكل الوسائل.ومع ذلك، فإن إحدى مزايا CI هي أنك تحصل على تقرير حالة البناء بعد كل تسجيل وصول.إن كتابة برنامج نصي للقيام بذلك يتطلب المزيد من العمل، ويقوم CruiseControl بذلك بالفعل.

نصائح أخرى

نحن نستخدم هدسون ل CI و SonarQube لمقاييس الكود.إنها متكاملة، ولدى Hudson عدد قليل من المكونات الإضافية التي لا يمكن لأي cronjob التغلب عليها.

أحد المكونات الإضافية الرائعة هي CI Game، التي تحتفظ بنتيجة حول من يكسر التصميمات ومن يرتكبها دون كسرها.لدى Hudson مكونات إضافية للعب مع VMWare وSelenium وSVN وCSV وGit.يحتوي على مشاركة RSS، والتي يمكن أن تساعدك على أتمتة المزيد من كل شيء آخر.

هدسون عظيم..

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

لقد تم استخدام بيلدبوت ل محرك الربيع RTS المشروع بنجاح.

يمكنك أيضًا المحاولة مدينة فريق JetBrains.إنه منتج تجاري ولكنه يمنح ترخيصًا مجانيًا لما يصل إلى 20 تكوينًا للبناء.

إحدى الميزات الرائعة لأداة التكامل المستمر (CI) هي أنه يتم تشغيل البناء في كل مرة يتم فيها فحص شيء ما في مستودع التحكم بالمصدر الخاص بك.

إذا لم يكن هذا شيئًا تحتاجه، فمن الأفضل استخدام برنامج جدولة مهام Windows أو وظائف cron.

بالإضافة إلى ذلك، تأتي أدوات CI أيضًا مزودة بلوحة معلومات (ويب) وإمكانيات تسجيل متقدمة.

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top