Atlassian Bamboo vs Jetbrains Teamcity - هناك فائز واضح

كنت أستخدم خوادم التكامل المستمر لأكثر من عقد من الزمان. لقد استخدمت جنكينز ، بامبو ، ترافيس ، جربت سيركل ، جنكينز ، جوكد ، سيمافور و BuildBot. أقوم بإجراء الاختبار والنشر المستمر على محمل الجد ولديّ مطالب قوية بخادم الإنشاء. ركضت خيزرانًا مستقلاً ذاتيًا لأكثر من 4 سنوات ، مدمجة مع خادم Jira و Bitbucket وكنت راضيًا وغير سعيد.

عندما رفعت شركة Atlassian أسعارها لـ Bamboo كذلك قررت تقييم CI-Solution جديد. لم أكن راضيًا عن تطوير الميزة على الخيزران. اعتدت استخدام العديد من مهام البرامج النصية المضمّنة ، لأنه لم تكن هناك مكونات إضافية كافية لحالات الاستخدام الخاصة بي. لم أتمكن من شراء عامل بناء آخر ، ولم أتمكن من شراء الخيزران في المقام الأول ، لأنني فريق مطور واحد فقط.

لقد طعنت في كل منهم. لقد بدأت بمصدر مفتوح ، لكن Jenkins و GOCD نحن كابوس خطير بالنسبة لي. جنكينز بسبب الواجهة (حتى مع المحيط الأزرق) ، GOCD بسبب فقدان التكامل وعدم المرونة. شعرت بخيبة أمل ...

لقد بدأت في تقييم SaaS المعروفة مثل Circle و Semaphore وغيرها. لكنهم شعروا جميعًا أنني أفتقد جزءًا كاملاً من سير العمل الذي كان لدي من الخيزران.

مجانا للاستخدام صغير

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

اعتقدت دائمًا أن Teamcity هو المستضعف في CI والمدرسة القديمة جدًا ، لكن لم يكن الأمر كذلك.

إليك قائمة الميزات التي تسحق الخيزران لحالة الاستخدام الخاصة بي:

الإكمال التلقائي للمتغيرات ومعلمات التكوينات

هناك الكثير من المتغيرات في كل خادم CI ، والتي تريد استخدامها. لكن من الصعب دائما تذكرها. أدرجت وثائق Bamboo جميع المتغيرات ، لكن فكرة TC أفضل بكثير:

سيتم إكمال متغيرات الإكمال التلقائي بمجرد الكتابة في٪. يعمل هذا مع خيارات التكوين البسيطة (مثل عداد الإنشاء هنا) ، ولكن أيضًا في البرامج النصية المضمّنة. بسيطة جدا ، مفيدة جدا!

الملاحة المباشرة

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

الأسهم الصغيرة في كل مكان في واجهة المستخدم من teamcity - مع وضع علامة دائرة حمراء

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

قوائم السياق آمنة طن من الوقت أثناء التنقل

بناء ونشر القوالب

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

مشاريع ومشاريع التسلسل الهرمي

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

العدائين الفوقية (سوف تهب عقلك)

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

تعريف XML للعداء الفوقية

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

تحميل مفاتيح سه

من الصعب جدًا استخدام بيانات اعتماد ssh في الخيزران. من السهل القيام بذلك في Teamcity. يمكنك تحميل المفاتيح عن طريق واجهة المستخدم أو مجرد نسخها في مجلد ، يمكنك تثبيته على صورة عامل الميناء. ثم تستخدم المفاتيح في كل مكان للقيام بمهام ssh أو scp أو rsync. بهذه السهولة ، مدروسة جيدًا - أتمنى فقط أن يقدموا قبوًا لهم.

إدارة وكيل سه مباشرة لبنيات الخاص بك

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

"اختيار ملف" -أرقام

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

مشاهدة الاختبارات الخاصة بك ، مباشرة ومباشرة!

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

يظهر التقدم المحرز الاختبارات أثناء البناء

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

لم أظن طلاقا…

... سأكون في الحب مع خادم تكامل مستمر مرة أخرى. Jetbrains ، افعل شيئًا لصورتك. أنت تستحق أن تكون ملكًا لخوادم CI ، بجدية.

إخلاء المسئولية: لم تدفع Jetbrains أو شجعني على كتابة هذه المقالة.

كنت أرغب في أن يكون هذا مدحًا حول Teamcity ، وليس صخبًا عن الخيزران. إذا كنت مهتمًا بقطعة حول "ما هو الخطأ في الخيزران" ، فأعلمني! سأكون سعيدًا بالتفصيل.

من فضلك اتبعني على تويتر!