สร้างเซิร์ฟเวอร์อย่างต่อเนื่อง (cc.net, ฮัดสัน, ไผ่, ฯลฯ ... ) ประสบการณ์การสร้างระยะไกล?


9

ขณะนี้เราใช้เซิร์ฟเวอร์ cc.net เพียงครั้งเดียวสำหรับกระบวนการสร้างซึ่งสร้างทั้ง. net (โดยใช้ msbuild & nant) และ java (โดยใช้ maven และ ant)

CC.net ตรวจสอบการควบคุมแหล่งที่มาและทริกเกอร์การสร้างระยะไกลที่ทำงานบนเซิร์ฟเวอร์ที่แยกต่างหาก CC.net จะทำการตรวจสอบผลลัพธ์

เมื่อเราเรียกใช้งานบิลด์ระยะไกลโดยทั่วไปแล้ว:

  • รัน nunit หรือ junit หรือสิ่งที่คล้ายกันโดยใช้ข้อมูลที่เยาะเย้ย
  • เลือกรันสคริปต์ DB เพื่อสร้างอินสแตนซ์ฐานข้อมูลใหม่หรือกู้คืนฐานข้อมูลจากตำแหน่งที่ทราบ
  • ใช้ซีลีเนียมหรือคล้ายกับ UI ทดสอบ
  • รัน emma หรือ ncover เพื่อครอบคลุมรหัส
  • สร้างระบบสำหรับสภาพแวดล้อมการปรับใช้ที่หลากหลาย (ทดสอบยอมรับผลิต)

เราอาจมีการสร้างหลายครั้งในเวลาหนึ่งบาง. net และบาง java (จากทีมงานโครงการที่แตกต่างกัน)

มันใช้เวลาค่อนข้างนานในการทำให้รีโมตบิลด์ทำงานเมื่อเราตั้งค่าโปรเจ็กต์ใหม่และเรารู้สึกว่าต้องมีบางสิ่งที่เหมาะกับรีโมตบิวด์มากกว่า cc.net

ใครบ้างมีประสบการณ์กับการสร้างระยะไกลด้วยระบบการรวมอย่างต่อเนื่อง?
ฉันไม่ต้องการรายการคุณสมบัติของเซิร์ฟเวอร์ CI ฉันรู้สึกซาบซึ้งมากขึ้นเกี่ยวกับวิธีที่คุณใช้ในหลาย ๆ ภาษาสภาพแวดล้อมของเซิร์ฟเวอร์หลายตัว

คำตอบ:


8

ฮัดสัน (อัปเดต: ในโลกปัจจุบันฉันจะใช้เจนกินส์ซึ่งเป็นส้อมของฮัดสัน)

ฉันใช้ฮัดสันทั้งในสภาพแวดล้อมขององค์กร Java และ. NET สำหรับโครงการที่มองเห็นได้สูง (คุณอาจเคยไปที่ไซต์บางแห่ง) ฮัดสันนั้นแข็งแกร่งตั้งแต่เริ่มต้น แต่ส่วนที่ดีที่สุดคือมีปลั๊กอินมากมายที่จะทำทุกอย่างที่คุณต้องการ ฮัดสันสามารถกำหนดค่าได้อย่างสูงมีชุมชนที่ยอดเยี่ยมและตั้งค่าได้ง่ายในสภาพแวดล้อมแบบคลัสเตอร์ถ้าคุณต้องการการสร้างหลายครั้งพร้อมกัน เป็นเซิร์ฟเวอร์ CI สุดโปรดของฉันที่ฉันเคยใช้ (CC.NET, Hudson และ TFS)

นอกจากนี้คุณสามารถใช้ปลั๊กอิน ChuckNorrisเพื่อให้เขายกนิ้วขึ้นหรือลง


1
ฮัดสันเป็นตัวเลือกที่ดีหากคุณไม่ได้ทำอะไรแปลกใหม่ แต่ในตอนท้ายของวันถ้าคุณไม่สามารถทำสิ่งที่คุณพยายามทำในแบทช์สคริปต์ฮัดสันก็ไม่น่าจะทำได้ดีเช่นกัน
Bill

ฮัดสันเข้าสู่เจนกิ้นส์และ Oracle Hudson สนใจที่จะใช้อันไหนดี?

1
@ Thorbjørn: ฉันเป็นมืออาชีพเจนกินส์ มีหลายเหตุผลแต่สิ่งที่นักฆ่าคนหนึ่งสำหรับฉันคือเจนกินส์กำลังได้รับการพัฒนามากขึ้น - ส่วนใหญ่เป็นเพราะ Kohsuke Kawaguchi คนหลักที่อยู่เบื้องหลังฮัดสันอยู่ในค่ายเจนกินส์ และดูเหมือนว่าเขารู้สึกว่าเจนกินส์เป็นความต่อเนื่องที่แท้จริงของโครงการเขาเริ่ม โอ้และสุดท้าย Jenkins มีโลโก้ที่ไม่ใช่ภาพตัดปะของ Microsoft!
Tom Anderson

@ Thorbjørn - ฉันเห็นด้วยกับทอม ฉันไม่ได้ใช้ฮัดสันในอีกประมาณหนึ่งปี (ปัจจุบันใช้ TFS) แต่นั่นเป็นฉันทามติทั่วไปที่ฉันได้ยินมาว่าเจนกินส์เป็นวิธีที่จะไป อีกครั้งฉันไม่ได้ใช้อย่างใดอย่างหนึ่งตั้งแต่พวกเขาแยก แต่ถ้าฉันต้องหยิบมันอีกครั้งฉันจะไปเส้นทางเจนกินส์
Ryan Hayes

7

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

ฮัดสัน - ฉันไม่รู้ว่าจะทำอย่างไรและจะอ่านยังไงดี และแม้ว่าฉันจะเข้าใจบางสิ่งบางอย่างมันก็ไม่มีทางเลือก - ทำงานมากเกินไป ฉันตัดสินใจที่จะดู CC

ระบบควบคุมความเร็วคงที่ - เหมือนกับ Hudson แต่มีวิธีที่แตกต่างออกไปเล็กน้อย ไม่มีอะไรสามารถเข้าใจได้อย่างแน่นอนหากไม่มีคู่มือและความช่วยเหลือมากมายจาก google ฉันแค่ไปดูที่ TC

TeamCity - TeamCity รู้สึกเหมือนสวรรค์หลังจากสองคนแรก มันใช้งานได้ดีที่สุดในสามประเภทนี้ ติดตั้งไปที่แผงผู้ดูแลระบบกำหนดโครงการ (แสดงที่ SVN คือชี้ไปที่สร้างไฟล์ระบุการทดสอบความครอบคลุม / หน่วย ฯลฯ ) และเริ่มเพลิดเพลิน และถึงแม้ว่าฉันไม่สามารถบอกได้ว่าฉันไม่ได้ทำอะไรกับ Google แต่ทว่า 95% ของกระบวนการติดตั้งนั้นง่ายและชัดเจน ฉันขอแนะนำเครื่องมือนี้ ไปดูที่มัน มันจะช่วยให้คุณประสาทและเวลามาก :)

ฉันควรทราบด้วยว่า TC ไม่ฟรี แม้ว่าพวกเขาจะมีรุ่นฟรีที่สามารถใช้ในโครงการเชิงพาณิชย์ที่มีข้อ จำกัด บางอย่าง (สร้างสูงสุดกำหนด 20) ดูที่หน้าราคาของพวกเขา

PS ฉันดูเหมือนฉันทำงานให้กับ TC แต่ฉันทำไม่ได้จริงๆ :)


3

เราใช้ CC.NET 1.4

เรากำลังพยายามอัปเกรดเป็น 1.6 ... เป็นฝันร้าย

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

ฉันต้องการย้ายไปที่ TeamCity เป็นการส่วนตัว

ฉันแนะนำให้คุณหลีกเลี่ยง ccnet


1

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

ฉันประทับใจมากที่ CI ของคุณอยู่ในระดับสูง ฉันต้องยอมรับว่าเรามีความต้องการน้อยลงเพราะเรายังไม่ได้ทดสอบ UI และไม่สร้างอินสแตนซ์ฐานข้อมูลหรือสิ่งที่คล้ายกันเราแค่ใช้ mocks สำหรับการทดสอบหน่วยของเรา

จากประสบการณ์ของเราจนถึงตอนนี้:

สำหรับโครงการ Java เราใช้ Bamboo ซึ่งทำงานได้ดีโดยใช้ JUnit และ Emma และไม่มีความพยายามมากนักในการจัดตั้งโครงการใหม่

สำหรับโครงการ. NET เรายังคงค้นหาทางออกที่ดีที่สุด

  • การควบคุมความเร็วคงที่: เราไม่สามารถให้บริการได้เนื่องจากปัญหาในการเชื่อมต่อกับที่เก็บข้อมูลของเรา

  • TFS:

    a) มีขั้นตอนการตั้งค่าบางอย่างที่จำเป็นเพื่อให้สามารถเรียกใช้งานบิลด์แรกได้

    b) มีข้อผิดพลาดบางอย่างที่คุณต้องแก้ไขเกี่ยวกับสิทธิ์การเข้าถึง มีหลายบทบาทที่คุณสามารถกำหนดได้และคุณต้องรู้ว่าสิทธิ์ใดมีกระบวนการสร้างของคุณและมีบัญชีเข้าสู่ระบบส่วนตัวของคุณ แต่ถ้าคุณมีเวลาเพียงพอในการจัดการคุณสามารถกำหนดความละเอียดที่คุณต้องการได้

    c) เกี่ยวกับ libs อ้างอิงนอกจากนี้ยังมีบางสิ่งที่จะจัดการถ้าคุณต้องการแชร์ libs สำหรับหลาย ๆ โครงการและไม่ต้องการจัดการพวกมันในทุก ๆ โครงการ

    d) การรันการทดสอบ NUnit นั้นไม่ใช่เรื่องง่ายอย่างที่เราคิด เป็นเรื่องง่ายถ้าคุณใช้การทดสอบการใช้งานที่จัดทำโดย Visual Studio แต่นี่ไม่ใช่ NUnit

    e) เรายังไม่ได้พยายามรัน NCover (สิ่งแรก :-) ก่อน)

  • ฮัดสัน: เครื่องมือถัดไปที่เราจะลอง ดูเหมือนว่าจะมีปลั๊กอินที่ดีและใช้งานง่ายสำหรับ. NET ฉันจะแจ้งให้คุณทราบว่ามันทำงานอย่างไร

  • Bamboo: การทำนายแรกที่เราได้รับ: "เฉพาะ Java มากเกินไป" แต่บางทีเราจะลองใช้ปลั๊กอิน. NET แต่ฉันจะแจ้งให้คุณทราบ

หวังว่าเราจะสามารถสนทนาและแลกเปลี่ยนประสบการณ์นี้ต่อไป

แอนดี้

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