ส่วนตัวผมเคยใช้แค่ CruiseControl และ CruiseControl.Net เท่านั้น เหตุผลของเรื่องนี้เกี่ยวข้องกับเศรษฐศาสตร์ มันมีความเสถียรพอสมควรและเมื่อคุณตั้งค่าแล้วคุณจะต้องดูแลรักษามันเล็กน้อย ชุมชนผู้ใช้มักจะมีประโยชน์มากและสามารถขยายความต้องการของคุณได้
ที่กล่าวว่ามีข้อเสนอการค้าสองสามอย่างที่ฉันทราบ (หนึ่งโดย JetBrains, อื่น ๆ โดย Atlassian) ซึ่งเสนอประสบการณ์ที่ดีขึ้นและการสนับสนุนเชิงพาณิชย์ ฉันตั้งใจจะลองใช้ข้อเสนอเหล่านี้ แต่จริงๆแล้วยังไม่มีโอกาส
เครื่องมือ CI มีบทบาทสำคัญในการเล่นกับภาษาที่คอมไพล์มากกว่าภาษาที่ตีความ แต่นั่นไม่ได้เป็นการบอกว่าเครื่องมือ CI นั้นสูญเปล่าไปกับภาษาที่ถูกตีความ เมื่อคุณมีหลายโครงการที่ต้องพึ่งพาซึ่งกันและกันและคุณต้องการให้แน่ใจว่าการเปลี่ยนแปลงนั้นไม่ได้ทำลายโดยไม่ได้ตั้งใจมันคือการพึ่งพาเครื่องมือ CI นั้นมีค่ามาก
มีปัญหาทั่วไปสามประเภทที่เครื่องมือ CI สามารถช่วยคุณได้:
- ข้อผิดพลาดในการคอมไพล์ - หากลายเซ็นของคลาสเปลี่ยนไปในทางที่ทำให้การพึ่งพาพึ่งพากันได้ดีที่สุดที่จะทราบได้ก่อนที่จะถึงกำหนดส่งมอบชั่วโมง
- ข้อผิดพลาดเชิงตรรกะ - ถ้าพฤติกรรมของคลาสเปลี่ยนไปในลักษณะที่ทำให้การพึ่งพาพึ่งพากันได้ดีที่สุดควรรู้ไว้ตั้งแต่เนิ่นๆ สิ่งนี้จะต้องได้รับการตรวจสอบโดยการทดสอบอัตโนมัติบางประเภทซึ่งเป็นการทดสอบหน่วยทั่วไป
- การทดสอบการยอมรับ - หากคุณมีชุดการทดสอบอัตโนมัติเพื่อให้ทำงานกับผลิตภัณฑ์สำเร็จรูป
ภาษาที่ตีความไม่ได้รวบรวมดังนั้นจึงไม่มีข้อผิดพลาดในการรวบรวมที่จะจับ อย่างไรก็ตามปัญหาอีกสองปัญหานั้นเป็นเรื่องธรรมดามากพอที่เครื่องมือ CI จะมีประโยชน์สำหรับโครงการใน Ruby / Python / Perl / etc
คำสำคัญในข้อผิดพลาดเชิงตรรกะและจุดทดสอบการยอมรับคือการทดสอบแบบ "อัตโนมัติ" หากคุณไม่มีชุดทดสอบที่เครื่องสามารถใช้งานได้แสดงว่าคุณพลาดประโยชน์ที่มากกว่าของเครื่องมือ CI ห้องสวีทอัตโนมัติสามารถสร้างขึ้นตามเวลาดังนั้นคุณจึงสามารถเริ่มต้นเล็ก ๆ ได้
แก้ไข
ดูแผนภูมิที่ดีสำหรับการเปรียบเทียบคุณสมบัติของ CI Tools จำนวนมาก (ซึ่งส่วนมากที่ฉันไม่รู้):
http://confluence.public.thoughtworks.org/display/CC/CI+Feature+Matrix