سؤال

أنا أعمل مع مجموعة صغيرة (4 شخص) فريق التطوير على مشروع C#.لقد اقترحت إنشاء بناء آلة التي سوف تفعل كل ليلة يبني والاختبارات المشروع ، لأنني أفهم أن هذا هو شيء جيد.المشكلة هي أننا لا نملك الكثير من ميزانية هنا, لذلك يجب أن يبرر حساب إلى أن القوى.لذلك أريد أن أعرف:

  • أي نوع من الأدوات/التراخيص سوف أحتاج ؟ الآن يمكننا استخدام Visual Studio الذكية الجمعية لبناء و بالضرورة عن مصدر عنصر التحكم.هل أنا بحاجة إلى شيء آخر ، أم أن هناك ما يعادل وظيفة كرون التشغيل الآلي النصية ؟
  • ماذا بالضبط ، هذا من إشارة من كسر في بناء ؟ وينبغي إعداد مشاريع تجريبية في هذا الحل (sln الملف) التي سيتم تشغيل هذه البرامج النصية ، لذلك أنا يمكن أن يكون لها وظائف معينة اختبار ؟ لدينا في هذه اللحظة اثنين من هذه الاختبارات ، لأنه لم يكن لدينا الوقت (أو بصراحة تجربة) لجعل جيدة وحدة الاختبارات.
  • أي نوع من الأجهزة التي سوف تحتاج لهذا ؟
  • مرة واحدة بناء قد تم الانتهاء من اختبار ، هو ممارسة شائعة لوضع هذا بناء على موقع ftp أو بطريقة أخرى الداخلية ؟ والفكرة هي أن هذا الجهاز يجعل على بناء و نذهب جميعا إلى ذلك ، ولكن يمكن أن تجعل يبني التصحيح إذا كان لدينا.
  • كيف في كثير من الأحيان يجب أن تجعل هذا النوع من بناء ؟
  • كيف هو الفضاء إدارتها ؟ إذا يمكننا أن نجعل ليلا يبني أن حول كل البنايات القديمة ، أو البدء في التخلص منها بعد حوالي أسبوع أو نحو ذلك ؟
  • هل هناك أي شيء آخر أنا لا أرى هنا ؟

    وأنا أدرك أن هذا هو كبير جدا الموضوع و أنا بدأت للتو.لم أتمكن من العثور على نسخة من هذا السؤال هنا, و إذا كان هناك كتاب من هناك علي, واسمحوا لي أن أعرف.

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

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

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

    المحلول

    تحديث: جنكينز هو معظم ما يصل إلى تاريخ الإصدار هدسون.الجميع يجب أن يكون استخدام جنكينز الآن.سوف يتم تحديث الروابط وفقا لذلك.

    هدسون مجانية و سهلة للغاية لتكوين تشغيل بسهولة على VM.

    جزئيا من خلال وظيفة القديم من الألغام:

    ونحن استخدامه

    • نشر خدمات ويندوز
    • نشر خدمات الويب
    • تشغيل MSTests وعرض أكبر قدر من المعلومات من أي junit الاختبارات
    • تتبع منخفضة,med,عالية المهام
    • trendgraph التحذيرات والأخطاء

    وهنا بعض من المدمج في .صافي الاشياء التي هدسون يدعم

    أيضا لا سمح الله كنت تستخدم visual مصدر آمن ، ويؤيد ذلك أيضا.أنصح لك أن تأخذ نظرة على Redsolo المادة على المبنى .صافي المشاريع باستخدام هدسون

    الأسئلة الخاصة بك

    • س:أي نوع من الأدوات/التراخيص سوف أحتاج ؟ الآن يمكننا استخدام Visual Studio الذكية الجمعية لبناء و بالضرورة عن مصدر عنصر التحكم.هل أنا بحاجة إلى شيء آخر ، أم أن هناك ما يعادل وظيفة كرون التشغيل الآلي النصية ؟

    • A: أنا فقط تثبيت visual studio على نسخة جديدة من الجهاز الظاهري تشغيل جديدة مصححة, تثبيت ملقم windows OS.لذلك كنت في حاجة إلى تراخيص التعامل مع ذلك.هدسون سيتم تثبيت نفسها على أنها خدمة ويندوز و تعمل على المنفذ 8080 وسوف تكوين كيفية غالبا ما كنت تريد أن تفحص رمز مستودع تحديث رمز ، أو يمكن أن أقول لكم أنه بناء في وقت معين.كل للتكوين من خلال المتصفح.

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

      A: سوف تحصل على البريد الإلكتروني في المرة الأولى بناء فشل, أو يصبح غير مستقر.بناء غير مستقر إذا وحدة اختبار فشل أو أنها يمكن أن تكون علامة غير مستقر من خلال أي عدد من المعايير التي تحددها.عند اختبار وحدة أو بناء يفشل سوف تكون عبر البريد الالكتروني و سوف أقول لكم أين ، لماذا وكيف فشلت.مع تكوين نحصل على:

      • قائمة من كل ما يرتكب منذ آخر عمل بناء
      • ارتكاب الملاحظات من يرتكب تلك
      • قائمة من الملفات التي تم تغييرها في يرتكب
      • وحدة الإخراج من بناء نفسها ، والتي تبين خطأ أو فشل اختبار
    • Q: أي نوع من الأجهزة التي سوف تحتاج لهذا ؟

      A: VM تكفي

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

      A: هدسون يمكن أن تفعل ما تريد مع ذلك أن يشمل التعرف عليه عن طريق تجزئة md5, تحميل, نسخه, أرشفة, الخ.وهي تفعل ذلك تلقائيا و يوفر لك تشغيل طويلة تاريخ بناء القطع الأثرية.

    • Q: كيف في كثير من الأحيان يجب أن تجعل هذا النوع من بناء ؟

      A: لدينا لنا استطلاع SVN كل ساعة تبحث عن تغييرات في التعليمات البرمجية ، ثم يعمل بناء.ليلا على ما يرام ، ولكن ما قيمة المنظمة البحرية الدولية منذ ما عملت يوم أمس لن تكون جديدة في عقلك في الصباح عندما كنت تحصل في.

    • Q: كيف هو الفضاء إدارتها ؟ إذا يمكننا أن نجعل ليلا يبني أن حول كل البنايات القديمة ، أو البدء في التخلص منها بعد حوالي أسبوع أو نحو ذلك ؟

      A: الأمر متروك لك بعد فترة طويلة في بناء القطع الأثرية إلى تخزين على المدى الطويل أو حذفها ، ولكن جميع البيانات التي يتم تخزينها في ملفات نصية / ملفات xml أظل حول هذا يتيح لي متجر التغيير, الرسوم البيانية الاتجاه ، إلخ على الملقم مع verrrry مساحة صغيرة المستهلكة.كما يمكنك تعيين هدسون إلى الحفاظ على القطع الأثرية من زائدة # من يبني

    • Q: هل هناك أي شيء آخر أنا لا أرى هنا ؟

      A: هل هدسون الآن, أنت لن تخيب!

    نصائح أخرى

    كان لدينا حظ كبير مع التحرير والسرد التالي:

    1. Visual Studio (على وجه التحديد ، وذلك باستخدام MSBuild.exe أداة سطر الأوامر وتمريرها لدينا حل الملفات.يزيل الحاجة إلى msbuild البرامج النصية)
    2. نانت (مثل XML جملة المهام/مكتبة أفضل من MSBuild.لديه أيضا خيارات P4 src عمليات التحكم)
    3. CruiseControl.net - المدمج في لوحة ويب رصد/انطلاق يبني.

    CCNet وقد بنيت في أجهزة الإعلام لإرسال رسائل البريد الإلكتروني عندما يبني على النجاح/الفشل

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

    على الأجهزة:كما قوية كما يمكنك الحصول عليها.المزيد من القوة/الذاكرة = أسرع بناء مرات.إذا كنت لا تستطيع تحمله أنت لن نأسف الحصول على أرفع بناء آلة, مهما كانت صغيرة الفريق.

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

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

    في السابق كنا في مكان العمل TeamCity.فإنه من السهل جدا وقوية لاستخدام.فإنه يمكن استخدامها مجانا مع بعض القيود.وهناك أيضا برنامج تعليمي على دايم يلقي.السبب في أننا لم تستخدم CruiseControl.NET هو أنه كان لدينا الكثير من المشاريع الصغيرة و انها مؤلمة جدا إلى تعيين كل واحد في CC.NET.سأكون في غاية يوصي TeamCity.تلخيص إذا كنت على نحو مفتوح المصدر ثم CC.NET هو الكبير أبي مع أعلى قليلا من منحنى التعلم.إذا كانت ميزانيتك تسمح لك بالتأكيد الذهاب مع TeamCity أو تحقق من النسخة المجانية.

    كيف ؟ إلقاء نظرة على كاريل Lotz هو بلوق.

    لماذا ؟ هناك العديد من الأسباب التي أستطيع أن أفكر:

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

    مارتن فاولر المادة على التكامل المستمر يبقى النص النهائي.إلقاء نظرة على ذلك!

    الرئيسية حجة أنه سيتم خفض تكلفة عملية التنمية الخاصة بك, من خلال تنبيه لكم في أقرب وقت ممكن أن لديك كسر في بناء أو الفشل في الاختبارات.

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

    يجب عليك ان تجعل بناء آلة إعادة بناء كل مرة بعض الشيكات ، على مدار اليوم.مع تحكم أوتوماتيكي للسرعة, يمكنك الحصول على رمز على شريط المهام الخاصة بك أن يتحول الأحمر (و حتى يتحدث إليك!) عند بناء مكسورة.

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

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

    مجرد محاولة لبناء قليلا على ما mjmarsh قال: منذ أن وضعت مؤسسة كبيرة...

    • Visual Studio.MSBuild يعمل بشكل جيد.
    • نانت.
    • NantContrib.هذا وسوف توفر المهام الإضافية مثل بالضرورة العمليات.
    • CruiseControl.net.هذا هو مرة أخرى في الأساس الخاص بك "لبناء لوحة التحكم".

    كل ما ذكر أعلاه (باستثناء VS) هو المصدر المفتوح ، لذلك كنت لا تبحث في أي ترخيص إضافي.

    كما Earwicker المذكورة ، بناء في وقت مبكر ، بناء كثير من الأحيان.معرفة شيء انكسر, و يمكنك إنتاج الناتج هو مفيد واصطياد الاشياء في وقت مبكر.

    نانت تشمل المهام nunit/nunit2 كذلك, حتى يمكنك فعلا أتمتة اختبار وحدة.ثم يمكنك تطبيق الأنماط على النتائج ، مع مساعدة من الإطار الذي يوفره CruiseControl.net ، جميلة للقراءة ، للطباعة الوحدة نتائج الاختبار لكل بناء.

    الأمر نفسه ينطبق على ndoc المهمة.وقد الوثائق المنتجة والمتاحة لكل بناء.

    يمكنك حتى استخدام exec المهمة لتنفيذ أوامر أخرى ، على سبيل المثال ، تنتج من Windows Installer باستخدام InstallShield.


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

    • لا التراخيص اللازمة.CruiseControl.net هي متاحة بحرية و يحتاج فقط .صافي sdk لبناء.
    • بناء الخادم ، حتى من دون الآلي وحدة الاختبارات لا يزال يوفر بيئة تسيطر عليها لبناء النشرات.لا مزيد من "جون وعادة ما يبني على الجهاز لكنه مريض.لسبب ما لا أستطيع بناء على آلة"
    • الآن لدي مجموعة واحدة في Virtual PC الدورة.
    • نعم.بناء يحتاج إلى ملقاة في مكان يمكن الوصول إليه.التنمية يبني ينبغي أن يكون التصحيح تشغيل.بناء الإصدار يجب أن يكون إيقاف تشغيله.
    • كيف في كثير من الأحيان هو متروك لكم.إذا كان إعداد بشكل صحيح, يمكنك بناء بعد كل فحص في القليل جدا من النفقات العامة.هذا هو فكرة عظيمة إذا كان لديك (أو تخطط على وجود) وحدة الاختبارات في المكان.
    • الحفاظ على معالم والنشرات طالما المطلوبة.أي شيء آخر يعتمد على كيفية غالبا ما كنت بناء:باستمرار ؟ رمي بعيدا.يوميا ؟ الحفاظ على قيمة الأسبوع.أسبوعيا ؟ تبقى شهرين يستحق.

    أكبر مشروع يحصل على أكثر سوف نرى فوائد بناء الآلي آلة.

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

    وهذا بالطبع يفترض يمكنك إعداده بناء مع كل الاختيار في (التكامل المستمر).

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

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

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

    كيف:أما بالنسبة كيف انا كتبت عن هذا قبل قليل:[ انقر هنا]

    أكثر من 8 وظائف يذهب خطوة بخطوة حول كيفية إعداد جنكينز الخادم في بيئة ويندوز من أجل .صافي الحلول.

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