CruiseControl [.Net] vs TeamCity สำหรับการรวมอย่างต่อเนื่อง?


117

ฉันอยากถามคุณว่าสภาพแวดล้อมการสร้างอัตโนมัติแบบใดที่คุณพิจารณาได้ดีกว่าโดยพิจารณาจากประสบการณ์จริง ฉันกำลังวางแผนที่จะทำ. Net และการพัฒนา Java บางอย่างดังนั้นฉันต้องการมีเครื่องมือที่รองรับทั้งสองแพลตฟอร์มนี้

ฉันได้อ่านและเรียนรู้เกี่ยวกับCruiseControl.NET ที่ใช้ในการพัฒนา stackoverflow และTeamCityด้วยการรองรับการสร้างเอเจนต์บนแพลตฟอร์ม OS ที่แตกต่างกันและอิงตามภาษาการเขียนโปรแกรมที่แตกต่างกัน ดังนั้นหากคุณมีประสบการณ์จริงเกี่ยวกับทั้งสองอย่างนี้คุณชอบอันไหนและเพราะเหตุใด

ปัจจุบันฉันสนใจเรื่องความง่ายในการใช้งานและการจัดการเครื่องมือน้อยกว่ามากเนื่องจาก CC เป็นโอเพ่นซอร์สและ TC ขึ้นอยู่กับการออกใบอนุญาตในบางช่วงเวลาที่คุณมีโครงการมากมายที่ต้องดำเนินการ (เพราะฉัน จำเป็นสำหรับโครงการจำนวนเล็กน้อย)

นอกจากนี้หากมีเครื่องมืออื่นที่ตรงตามที่กล่าวไว้ข้างต้นและคุณเชื่อว่าคุ้มค่ากับคำแนะนำโปรดอย่าลังเลที่จะรวมไว้ในการสนทนา

คำตอบ:


111

ฉันได้ทำงานและกับเครื่องมือการผสานรวมอย่างต่อเนื่องตั้งแต่เครื่องมือที่สร้างระบบควบคุมความเร็วอัตโนมัติ (เวอร์ชัน java) ฉันได้ลองเกือบทั้งหมดแล้วในบางจุด ฉันไม่เคยมีความสุขไปกว่าการได้อยู่กับ TeamCity มันง่ายมากในการติดตั้งและยังคงให้พลังมหาศาล หน้าสถิติการสร้างที่แสดงเวลาในการสร้างจำนวนการทดสอบหน่วยอัตราการผ่าน ฯลฯ เป็นสิ่งที่ดีมาก โฮมเพจโครงการของ TeamCity ยังมีค่ามาก สำหรับโปรเจ็กต์. NET แบบธรรมดาคุณสามารถบอก TeamCity ได้ว่าโซลูชันอยู่ที่ใดและชุดประกอบใดมีการทดสอบและนั่นคือทั้งหมดที่จำเป็น (นอกเหนือจากตำแหน่งควบคุมต้นทาง) นอกจากนี้เรายังใช้สคริปต์ MSBuild ที่ซับซ้อนกับมันและสร้างการเชื่อมโยง ฉันได้ผ่านการอัพเกรด TeamCity สองครั้งแล้วและพวกเขาก็ไม่เจ็บปวด

CruiseControl.NET ยังทำงานได้ดี การตั้งค่าจะยุ่งยากกว่า แต่มีประวัติที่ยาวนานกว่าดังนั้นจึงง่ายต่อการค้นหาโซลูชันบนเว็บ เนื่องจาก CruiseControl.NET เป็นโอเพ่นซอร์สคุณจึงมีตัวเลือกในการเพิ่มหรือเปลี่ยนแปลงสิ่งที่คุณต้องการ ฉันใช้ CruiseControl.NET ตั้งแต่เปิดตัวและเขียนโค้ดต้น ๆ สำหรับ cc.tray (ขอบคุณที่เขียนใหม่โดยคนที่รู้ดีกว่า)

Cruise จาก ThoughtWorks ก็ดูดีเช่นกัน แต่ฉันไม่เห็นเหตุผลที่น่าสนใจสำหรับฉันที่จะเปลี่ยน ถ้าฉันกำลังเริ่มโปรเจ็กต์ใหม่ฉันอาจจะลองดู แต่ TeamCity ทำงานได้อย่างยอดเยี่ยมในการทำให้สิ่งที่เรียบง่ายเป็นเรื่องง่ายในขณะที่ทำให้ซับซ้อนไม่เจ็บปวด

แก้ไข: เราเพิ่งอัปเกรดเป็น TeamCity 5.0 เมื่อไม่กี่สัปดาห์ก่อนและเป็นการอัปเกรดที่ไม่เจ็บปวดอีก ช่วยให้เราสามารถใช้ประโยชน์จากความสามารถในการครอบคลุมโค้ดที่ได้รับการปรับปรุงและการสนับสนุน GIT ขณะนี้เรากำลังใช้คุณลักษณะการสร้างส่วนบุคคลและคุณลักษณะการคอมมิตที่ผ่านการทดสอบมาแล้วระยะหนึ่ง ฉันแค่คิดว่าฉันควรอัปเดตคำตอบเพื่อระบุว่า TeamCity ปรับปรุงอยู่ตลอดเวลาและยังใช้งานง่าย


สงสัยว่าจากประสบการณ์ทั้งหมดของคุณคุณสามารถแชร์ screencast ในการสร้างโปรเจ็กต์. NET แบบง่ายๆได้หรือไม่และทำงานกับ TeamCity (โดยใช้ JING (screencasting ฟรี) หรือเครื่องมืออื่น ๆ ) และโพสต์ลิงก์ที่นี่หรือที่ไหนสักแห่งเพื่อฉันและ พวกเราทุกคนที่ดิ้นรนกับมันจะมีการเริ่มต้นที่ดี :) ขอบคุณ
balexandre

2
@balexandre - ฉันพบว่าเอกสารประจำเมืองของทีมค่อนข้างดี และคำตอบของ @ boj ให้ลิงก์ไปยังนักแสดงหน้าจอที่ดีที่นี่blog.wekeroad.com/kona/kona-2
Mike Two

ฉันกลัว CI มาตลอดเพราะภาพลักษณ์ของ CCNet ที่ฉันมีเมื่อสัปดาห์ที่แล้วฉันได้ลองใช้ TeamCity 6.5 และมันเป็นความสุขอย่างแท้จริง ไม่ได้สัมผัสไฟล์ xml / configuration แม้แต่ไฟล์เดียว
kay.one

1
หากคุณกำลังใช้ CC.Net และต้องการย้ายไป Team City มันเจ็บปวดไหม? TC สร้างไฟล์ MSI อย่างไร
Wes

@ ฉันไม่รู้ว่าสิ่งนี้ยังเกี่ยวข้องกับคุณหรือไม่ แต่เรามีโครงการมากกว่า 20 โครงการที่ทำงานใน CC.Net แต่เมื่อเร็ว ๆ นี้ฉันได้ใช้ TeamCity สำหรับโครงการ Android บางอย่างที่เรามี ความเจ็บปวดที่ยิ่งใหญ่ที่สุดคือการเรียนรู้ Ant แต่นั่นเป็นสิ่งที่ฉันต้องทำถ้าได้วางโครงการใน CC.Net ฉันจะย้ายโครงการทั้งหมดของเราไปยัง TeamCity อย่างมีความสุขถ้าฉันสามารถโน้มน้าวให้ผู้บริหารจ่ายเงินสำหรับการกำหนดค่าการสร้างเพิ่มเติมที่เราต้องการได้ (ฟรีไปที่จุดใดจุดหนึ่ง) ส่วนใหญ่เกิดจากการกำหนดค่าซึ่งเป็นเรื่องง่ายใน TeamCity และ XML หล่มใน CC สุทธิ.
johnc

33

ฉันเป็น / ฉันเป็นแฟนตัวยงของ CC.NET ขณะนี้เรามีโครงการใน CruiseControl 5 โครงการและใช้งานได้ดี การเขียนไฟล์ config ด้วยมืออาจเป็นเรื่องยาก แต่ก็ไม่เป็นไร

แต่ .

หลังจากการแคสต์หน้าจอKona: การผสานรวมอย่างต่อเนื่องและการทดสอบหน่วยที่ดีขึ้น (1/3 แรกเกี่ยวกับ TeamCity) ฉันจะตรวจสอบ TeamCity ด้วย ฉันชอบแดชบอร์ดการทดสอบหน่วยรวมและอินเทอร์เฟซการกำหนดค่า

ฉันคิดว่าทุกคนควรดูวิดีโอนี้ก่อนเลือก CC.NET หรือ TeamCity

ps: ฉันหวังว่าจะมีวิดีโอ CC.NET ที่มีคุณค่าบนเน็ตด้วย


15

เซิร์ฟเวอร์ CI ที่ฉันชอบคือฮัดสัน ติดตั้งและดูแลรักษาง่ายมีกราฟที่ดีมากมายสำหรับแสดงเทรนด์ให้กับนักพัฒนาและผู้ที่ไม่ใช่นักพัฒนาและฟรี

ฉันกำลังใช้ TeamCity ในโปรเจ็กต์และโดยทั่วไปฉันพอใจกับมัน แต่กราฟจำนวนมากที่สร้างขึ้นนั้นไม่ได้มีประโยชน์อย่างยิ่งและมีความซับซ้อนในการกำหนดค่ามากกว่าฮัดสัน

กล่าวได้ว่า TeamCity มีประสิทธิภาพฟรีสำหรับการใช้งานจำนวนมากและมีคุณสมบัตินักฆ่าอย่างหนึ่ง: Remote Run คุณสามารถ "คอมมิตล่วงหน้า" เช็คอินของคุณได้โดยตรงจาก IDEA หรือ Eclipse รันการกำหนดค่าบิวด์อย่างน้อยหนึ่งรายการบนเซิร์ฟเวอร์ TeamCity และคอมมิตการเปลี่ยนแปลงก็ต่อเมื่อบิวด์สำเร็จ (เช่นคอมไพล์และการทดสอบทั้งหมดผ่าน)

เนื่องจากคุณสามารถทำให้ทั้ง TeamCity และ Hudson ทำงานได้ในเวลาไม่กี่ชั่วโมงการคว้าทั้งสองอย่างและใช้งานคู่กันพร้อมกับคนอื่น ๆ (เช่น CruiseControl) ที่คุณคิดได้ หากคุณไม่สามารถยืนเซิร์ฟเวอร์ CI ได้อย่างรวดเร็วเพื่อทำการเปรียบเทียบแบบเคียงข้างกันอย่างน้อยคุณก็มีจุดข้อมูลเพื่อให้ติดตั้งและ / หรือกำหนดค่าได้ง่าย


6
+1 สำหรับฮัดสัน ดูเพิ่มเติม: การใช้ฮัดสันเป็นเครื่องมือสร้าง. NET: stackoverflow.com/questions/616149/… ; CruiseControl vs Hudson: stackoverflow.com/questions/604385/…
Jonik

12

ฉันใช้ทั้งสองอย่างประสบความสำเร็จในโครงการต่างๆ จากมุมมองการตั้งค่าและการดูแลระบบ Team City จัดการได้ง่ายกว่ามาก คุณไม่จำเป็นต้องแฮ็กไฟล์. config เหมือนที่คุณทำกับ CC และการตั้งค่าก็เป็นเรื่องง่าย เนื่องจากคุณไม่มีโปรเจ็กต์มากนักฉันจึงขอแนะนำ Team City มากกว่า CC จนกว่าคุณจะไปถึงจุดที่ Team City มีค่าใช้จ่าย $$


12

ฉันใช้ทั้ง CC.net และ TeamCity ฉันได้รับมอบหมายให้ตั้งค่าและติดตั้ง TeamCity สำหรับองค์กรของฉัน (นักพัฒนา 5 คน) องค์กรของเราใช้แนวทางปฏิบัติและเครื่องมือที่ผิดปกติบางอย่าง (อย่างน้อยก็สำหรับองค์กรที่มีขนาดของเรา) เช่น Perforce สำหรับการควบคุมแหล่งที่มาและเอเจนต์บิลด์หลายตัวที่ทำงานบนระบบปฏิบัติการที่แตกต่างกันซึ่งทำให้เกิดอาการปวดหัวในการตั้งค่าเริ่มต้น อย่างไรก็ตามการสนับสนุนทางอีเมลเป็นสิ่งสำคัญที่สุดในการตั้งค่าทุกอย่าง ฉันได้รับคำตอบสำหรับคำถามโง่ ๆ ภายในไม่กี่นาที

อินเทอร์เฟซนั้นใช้งานง่ายและตอบสนองรวมถึงคุณสมบัติที่อัดแน่น รู้สึกว่าสินค้าแพงมาก การกำหนดค่าเป็นเรื่องง่ายและเว็บอินเตอร์เฟสมีความชาญฉลาดเพียงพอที่จะอัปเดตตัวเองโดยไม่ต้องรีสตาร์ทเอเจนต์หรือเซอร์วิสเซิร์ฟเวอร์หรือแม้แต่รีเฟรชเพจ

ฉันรู้สึกว่าเราใช้คุณลักษณะขั้นสูงทุกอย่างของผลิตภัณฑ์และไม่พบข้อบกพร่องใด ๆ เลย การรวม Ndepend, สคริปต์ NAnt ที่ซ้อนกัน, การติดฉลากเวอร์ชัน Perforce คุณตั้งชื่อมันเรากำลังทำอยู่

ฉันขอแนะนำ TeamCity สำหรับทุกคนที่กำลังมองหาเซิร์ฟเวอร์การรวมแบบต่อเนื่องหรือบิลด์เซิร์ฟเวอร์จริงๆ


Perforce เป็นเครื่องมือที่ไม่ธรรมดา? Perforce นั้นยอดเยี่ยมสำหรับทีมทุกขนาด ฉันใช้มันเพื่อการพัฒนาที่บ้านของฉันเอง :)
sonstabo

@sonstabo ฉันเห็นด้วยกับเรื่องนี้ บริษัท ขนาดเล็กส่วนใหญ่ไปกับ SVN หรือ GIT และ Perforce ส่วนใหญ่จะใช้กับ บริษัท ขนาดใหญ่ ฉันเคยใช้ Perforce และชอบมัน แต่ฉันอยู่ที่ บริษัท ผู้พัฒนา 1,000 รายเมื่อฉันใช้มัน
Samuel Neff

3

โดยไม่ต้องการโยนเครื่องมือทางเลือกให้คุณ :-)

ฮัดสันเป็นทางเลือกโอเพ่นซอร์สที่ยอดเยี่ยมฉันใช้ CC และ CC.net และฉันยอมรับว่าฉันคิดว่ามันเป็นเครื่องมือที่ยอดเยี่ยม ฉันกำลังคิดว่าจะเปลี่ยนมาใช้ฮัดสันเพราะมันง่ายกว่ามากในการตั้งค่าและบำรุงรักษา

https://hudson.dev.java.net/


1
+1 เนื่องจากไม่มีใครคิดเกี่ยวกับฮัดสันสำหรับ. Net CI ฉันเคยใช้ Cruise Control, Team City และ Bamboo และพบว่า Hudson เป็นเครื่องมือที่ดีที่สุดสำหรับงานในกรณีส่วนใหญ่ที่งบประมาณเป็นเรื่องใหญ่
Dan Rigby

3

ตรวจสอบให้แน่ใจว่าระบบที่คุณตัดสินใจในการปรับขนาดตามจำนวนโครงการที่คุณต้องการเพื่อจัดการ ...

ฉันใช้ CruiseControl.Net แต่ฉันไม่แนะนำให้สร้างโครงการจำนวนมาก ... ฉันมีการจัดเรียง (อาจแปลกเล็กน้อย) ที่ฉันมีไลบรารีแบบคงที่ C ++ จำนวนมากซึ่งฉันเขียนเป็นแอปพลิเคชัน แต่ละไลบรารีขึ้นอยู่กับไลบรารีอื่น ๆ และแอพจะดึงชุดของ libs และ build แต่ละ lib มีชุดทดสอบ แต่ละแอปมีชุดทดสอบ ฉันสร้างสำหรับคอมไพเลอร์ 5 ตัวและแพลตฟอร์ม (windows) รูปแบบต่างๆ

สิ่งแรกที่ฉันพบคือทริกเกอร์โครงการของ CC.Net ไม่ตรงกับสิ่งที่คุณต้องการจริงๆและมัลติทริกเกอร์ไม่สามารถเล่นได้ดีกับทริกเกอร์โครงการ วิธีทริกเกอร์โปรเจ็กต์ทำงาน (ใช้รีโมตเพื่อเชื่อมต่อกับเซิร์ฟเวอร์ที่จัดเก็บโปรเจ็กต์ (แม้ว่าจะเป็นโปรเจ็กต์ที่จัดการโดยอินสแตนซ์ CC.Net เดียวกันก็ตาม) จากนั้นดึงโปรเจ็กต์ทั้งหมดจากเซิร์ฟเวอร์นั้นและค้นหารายการตามลำดับ กำลังมองหาโครงการที่คุณสนใจ ... ) หมายความว่าพวกเขาปรับขนาดได้ไม่ดี เมื่อคุณเหนือกว่าโครงการจำนวนหนึ่งคุณจะพบว่า CC.Net ใช้ CPU ส่วนใหญ่สำหรับเครื่องสร้างของคุณ

แน่นอนว่ามันเป็นโอเพ่นซอร์สดังนั้นคุณสามารถแก้ไขได้ ... และฉันแน่ใจว่ามันใช้ได้สำหรับโครงการที่ไม่พึ่งพาซึ่งกันและกันจำนวนเล็กน้อย

สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับปัญหาที่ฉันมีและแพตช์สำหรับ CC.Net ดูที่นี่ http://www.lenholgate.com/archives/cat_ccnet.html


โอ้ ... ขอบคุณสำหรับข้อมูลนี้โพสต์ที่มีคุณค่า โดยเฉพาะอย่างยิ่งเมื่อกล่าวว่า TC เป็นการตั้งค่าที่เรียบง่ายและข้อ จำกัด คือจำนวนโครงการซึ่ง CC & CC.Net อาจเข้ามามีบทบาท แต่อย่างที่คุณพูดมันมีปัญหาเมื่อจำนวนโครงการเพิ่มขึ้น ... ขอบคุณอีกครั้ง
zappan

แม้ใน CC.Net เวอร์ชันแฮ็กอย่างหนักของฉันฉันก็มีปัญหาเพราะ CC.Net ใช้เธรดต่อโครงการในการกำหนดตารางเวลาและนั่นเป็นเพียงการออกแบบอึ IMHO
Len Holgate

2

ฉันเพิ่งตั้งค่า cc. net เป็นแอปพลิเคชั่นที่ยอดเยี่ยม แต่ต้องใช้ความอดทนสักหน่อย คุณจะแก้ไขไฟล์ config ใน notepad มาก :)

มันได้รับการสนับสนุนมาระยะหนึ่งแล้วและโดยปกติคุณสามารถหาคนที่เคยทำในสิ่งที่คุณอยากทำมาก่อน เว็บอินเทอร์เฟซเป็น. net ซึ่งเป็นข้อดีสำหรับเราเนื่องจากเราเป็นร้านค้าของ Microsoft

ฉันไม่ได้ใช้ TeamCity แต่ฉันได้ยินคำแนะนำมาเล็กน้อยและมันก็ดูดี


2

ฉันมีประสบการณ์ในการตั้งค่าและเรียกใช้ CruiseControl (เวอร์ชัน Java) บน Linux ระหว่าง บริษัท ก่อนหน้านี้ เช่นเดียวกับที่คนส่วนใหญ่แนะนำไม่ใช่เรื่องสำคัญที่สุดในการตั้งค่า คุณต้องเข้าใจกรอบการทำงานเพื่อให้สามารถกำหนดค่าได้ / จัดการได้ อย่างไรก็ตามเมื่อคุณผ่านโคกนั้นไปแล้วฉันรู้สึกว่า CruiseControl ค่อนข้างยืดหยุ่นพอที่จะให้คุณทำสิ่งต่างๆเพื่อให้เข้ากับสถานการณ์ต่างๆ

นอกจากนี้เอกสาร CruiseControl หน้า wikiยังมีข้อมูลที่เป็นประโยชน์อีกด้วย

ฉันไม่มีประสบการณ์โดยตรงกับ TeamCity แม้ว่าคุณสมบัติการทดสอบก่อนการทดสอบจะดูน่าสนใจพอสมควร

เครื่องมือ CC อื่น ๆ ที่คุณอาจให้ดูคือBambooจาก Atlassian มันง่ายกว่ามากในการตั้งค่าและอินเทอร์เฟซก็ดีกว่า แม้ว่าจะไม่ยืดหยุ่นเท่าที่ CruiseControl เสนอ


1

ตัวเลือกที่สามที่คุณอาจต้องการพิจารณา: การล่องเรือของ Thoughtworks มันสร้างขึ้นจาก CruiseControl แต่มีคุณสมบัติมากกว่าตั้งค่าง่ายขึ้น ฯลฯ ฯลฯ ไม่ฟรี (หรือโอเพ่นซอร์ส)

http://studios.thoughtworks.com/cruise-continuous-integration


1
ฉันได้ดู Cruise สองสามครั้งเมื่อต้องตั้งค่าเป็นระบบ CI มันไม่ง่ายไปกว่าตัวอย่างเช่น CC.NET มีจุดแข็งในการสร้างและปรับใช้
โฟลว์

หากคุณจะจ่ายสำหรับ Cruise / Go คุณอาจได้รับ TeamCity ฟรี
Niall Connaughton

0

ฉันใช้ Teamcity ในช่วง 1 ปีครึ่งที่ผ่านมาและมีประสบการณ์ที่ยอดเยี่ยม ฉันได้รวมโปรเจ็กต์. Net และ Java และใช้เครื่องมือต่างๆเช่น MSBuild, Maven เป็นต้นฉันพบว่า Teamcity นั้นค่อนข้างง่ายในการตั้งค่าและใช้งาน ฉันได้จัดการให้ CI ทำงานสำหรับโครงการ sql บางโครงการเช่นกันซึ่งเป็นฝันร้ายเล็กน้อยซึ่งอาจแย่กว่านี้กับเครื่องมือ CI อื่น ๆ
เพิ่งอัปเกรดเป็น Teamcity 8.0.6 ซึ่งไม่เจ็บปวด นอกจากนี้ Teamcity ยังมีREST APIซึ่งมีประโยชน์มากสำหรับบางสถานการณ์ หากคุณใช้ powershell ในการสร้างสคริปต์การรวม Psake / Teamcity โดยอัตโนมัติจะมีอยู่ในGitHub

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.