سؤال

أقوم حاليًا بإعداد خادم بناء جديد ، وأنا مهتم بأي اقتراحات قد يتمتع بها المجتمع حول برامج مثل Hudson أو CruiseControl.net التي قد تبسط وإضافة قيمة إضافية إلى عملية الإنشاء.

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

في هذه المرحلة ، تتمثل أفكاري في فصل بعض مسؤوليات خادم البناء القديم وعلى الأقل خادم بناء مسؤول فقط عن إنشاء بنيات ، وخادم ويب مسؤول عن التصرف كموقع لوحة معلومات النمط الداخلي للمطورين ، وربما خادم ويب إضافي كمستودع تخريب. إذا اتضح أنه أفضل أو أسهل للحفاظ على رمز التخريب على نفس الخادم مثل SVNServe ، فمن المحتمل أن أختار وضع مستودع التخريب على خادم الويب ولكن لا يزال يحتفظ بخادم البناء. عدم وجود خبرة شخصية مع أي من حلول Build Server الشهيرة وحلول CI هناك ، فإنني أشعر بالفضول لكيفية ملاءمة Cruisecontrol.net أو Hudson أو حلول أخرى مع هذا النوع من التكوين. يبدو أن كلا من CC.NET و Hudson لهما واجهات ويب على سبيل المثال ، لكن الوثائق لا تخطط بوضوح كيف يتم تشغيل هذا مع تكوينات الأجهزة/النظام المختلفة ، لذلك لست متأكدًا مما إذا كان إما يتطلب أن يكون جزء الويب في البناء الخادم نفسه أم لا.

فيما يتعلق بالتقنيات ، أتعامل مع الكود المستند إلى .NET/C# وهو مزيج من الويب/WinForms/WPF ونستخدم بعض مستودعات التخريب المنفصلة لاستضافة هذه المشاريع. بالإضافة إلى ذلك ، سيكون من الجيد دعم Visual Foxpro و Visual Source Safe لبعض التطبيقات القديمة. أرغب أيضًا في إشراك المزيد من أعضاء الفريق في مراقبة التصميم وأرغب في وضع المطورين في نهاية المطاف إنشاء إعدادات بناء لمشاريعهم الخاصة مع أكبر قدر ممكن من البساطة. كما يجب أن أذكر أنه ليس لدي أي خبرة في إعداد تطبيق ويب قائم على Java في IIS ، لكن لديّ خبرة كبيرة في إعداد وإدارة تطبيقات ASP.NET ، لذلك إذا كان ذلك قد يجعل المنتجات المستندة إلى .NET أكثر مواتاة ما لم يكن بإمكاني أن أكون مقتنع خلاف ذلك.

تحديث (بعد البحث في هدسون): بعد كل التوصيات الخاصة بـ Hudson ، بدأت أبحث في ما يشارك في احصل عليه وتشغيله على خادمتي Windows 2008. من خلال ما يمكنني جمعه ، سيتم تشغيل جزء الويب (Master) على خادم الويب الخاص بي ، لكن يبدو أن IIS غير مدعوم ، لذا فإن هذا سيؤدي إلى تعقيد الأشياء إلى حد كبير لأنني أريد استضافته على نفس الجهاز مثل تطبيقات الويب الأخرى الخاصة بي. على خادم البناء ، سأقوم بتثبيت نسخة ثانية من هدسون والتي ستعمل كعبد وأداء فقط تم تفويضها من قبل السيد. للحصول على هذا العمل سأكون تثبيت هدسون كخدمة Windows وستحتاج أيضًا إلى تثبيت بعض أدوات التوافق UNIX. لسوء الحظ، ال unxutils تنزيل الرابط يبدو أنه تم كسره عندما راجعت أيضًا ، لذا لا يمكنني المضي قدمًا حتى يتم حل ذلك. كل هذا يبدو حقًا معقدًا تمامًا إن لم يكن أكثر تعقيدًا من تثبيت Crusecontrol.net. في الوقت الحالي ، هذا للأسف يتركني لأبحث في CruiseControl.net و Teamcity.

تحديث (حول TeamCity): بعد النظر في TeamCity ، أدركت أنه على الأقل على الأقل يتم كتابة جزء الخادم في Java ويتم نشره بطريقة تشبه إلى حد كبير Hudson. لحسن الحظ ، يبدو أنه يمكن استخدام Tomcat لاستضافة Servlets داخل IIS على الرغم من أنني لا أستطيع العثور على دليل جيد مستقيم للأمام لوصف كيفية تحقيق ذلك بالفعل. لذا تخطي ذلك في الوقت الحالي ، نظرت إلى أبعد من ذلك عندما واجهت ما يشبه ما قد يكون عقبة كبيرة.

يدعم TeamCity Professional Edition المصادقة الافتراضية TeamCity فقط ولا يدعم تغيير مخطط المصادقة.

نظرًا لأن مصادقة Windows هي على الأرجح الاتجاه الذي سنرغب في الذهاب إليه ، يبدو الآن أنه قد يعود إلى تقييم CruiseControl.net أو ربما Hudson إذا كان بإمكاني وضع يدي على Unxutils وأيضًا معرفة المزيد حول كيفية استضافة لوحة القيادة جزء من Hudson ضمن تكوين IIS الحالي الخاص بي. أي مؤشرات؟

تحديث (حول جنكينز): انتهى بي الأمر بتجربة ما يكفي مع هدسون ، انتهى بي الأمر بإعداد معقول لخادم البناء الذي أنا سعيد به ويمكن تمديده لفعل المزيد إذا احتجت. بالطبع ذهبت إلى هزيمة التحويل إلى جنكينز بمجرد استولى أوراكل على هدسون وجينكينز هو ما أستخدمه اليوم مع أجزاء صغيرة من PowerShell للمساعدة في ربط الأشياء معًا. أنا سعيد جدًا بهذا النهج في الوقت الحالي ، وإلى جانب كونه مقرها Java ، فإن Jenkins لديها الكثير من الدعم لبيئات التطوير الأخرى مثل .NET و MSBuild.

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

المحلول

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

نصائح أخرى

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

لعملية صنع القرار لدينا ، بدأنا باتباع نظرة عامة.

http://confluence.public.thoughtworks.org/display/cc/ci+feature+matrix

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

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

بديل مثير للاهتمام يمكن أن يكون استوديو JIRA من قبل أطلاسي. إذا كنت تستخدم الإصدار المستضاف ، فلن يكون لديك الكثير في مشكلات الدعم ويأتي مع التخريب والخيزرو والأشياء الجيدة (Jira+Greenhopper ، التقاء ، بوتقة ، فيش). http://www.atlassian.com/hosted/studio/

وأنا أتفق مع وايت بارنيت. Teamcity هو الخيار الأفضل. من السهل جدًا التكوين والاستخدام. علاوة على ذلك ، لدى TeamCity نسخة مهنية مجانية. في السابق استخدمنا CruiseControl.net في مشروعنا. هذه أيضًا أداة قوية ، لكنها معقدة للغاية ويصعب فهمها.

ما قاله S.Emakovich: يفصل كل من Teamcity و Hudson واجهة المستخدم على الويب عن وكلاء البناء. يجب ألا تحتاج إلى تثبيت IIS على وكيل البناء. ستحتاج إلى تثبيت JVM وبرنامج Agent على أي عقدة بناء - واضحة للغاية.

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