Máy chủ Build liên tục (cc.net, hudson, tre, v.v.) Kinh nghiệm xây dựng từ xa?


9

Chúng tôi hiện đang sử dụng một lần máy chủ cc.net cho quá trình xây dựng của mình, nó xây dựng cả .net (sử dụng msbuild & nant) và java (sử dụng maven và ant).

CC.net giám sát kiểm soát nguồn và kích hoạt một bản dựng từ xa đang chạy trên một máy chủ riêng biệt. CC.net sau đó đối chiếu kết quả.

Khi chúng tôi chạy bản dựng từ xa, nó thường:

  • chạy nunit hoặc Junit hoặc tương tự bằng cách sử dụng dữ liệu giả định
  • tùy chọn chạy tập lệnh DB để tạo một cá thể cơ sở dữ liệu mới hoặc khôi phục cơ sở dữ liệu từ một vị trí đã biết.
  • chạy selen hoặc tương tự như giao diện người dùng thử nghiệm
  • chạy emma hoặc npack để bảo hiểm mã
  • xây dựng hệ thống cho các môi trường triển khai khác nhau (thử nghiệm, chấp nhận, sản xuất)

Chúng tôi có thể có một số bản dựng chạy cùng một lúc, một số .net và một số java (từ các nhóm dự án khác nhau).

Sẽ khá tốn thời gian để làm cho các bản dựng từ xa hoạt động khi chúng tôi thiết lập một dự án mới và chúng tôi cảm thấy rằng phải có một cái gì đó phù hợp hơn với các bản dựng từ xa hơn cc.net.

Có ai có bất kỳ kinh nghiệm với các bản dựng từ xa với các hệ thống tích hợp liên tục không?
Tôi thực sự không muốn danh sách tính năng của các máy chủ CI, tôi đánh giá cao hơn về cách bạn đã sử dụng chúng trong môi trường đa ngôn ngữ, đa máy chủ.

Câu trả lời:


8

Hudson (Cập nhật: trong thế giới ngày nay, tôi sẽ sử dụng Jenkins, một nhánh của Hudson.)

Tôi đã sử dụng hudson trong cả môi trường doanh nghiệp Java và .NET cho các dự án có khả năng hiển thị cao (có lẽ bạn đã từng đến một số trang web). Hudson là vững chắc ngay từ đầu, nhưng phần tốt nhất là có rất nhiều plugin để làm bất cứ điều gì bạn muốn. Hudson có cấu hình cao, có một cộng đồng tuyệt vời và thực sự dễ dàng thiết lập trong môi trường cụm nếu bạn cần nhiều bản dựng cùng một lúc. Đó là máy chủ CI yêu thích của tôi trong số tất cả những máy chủ tôi đã sử dụng (CC.NET, Hudson và TFS).

Ngoài ra, bạn có thể sử dụng plugin ChuckNorris để anh ấy đưa ngón tay cái lên hoặc xuống.


1
Hudson là một lựa chọn tốt nếu bạn không làm bất cứ điều gì kỳ lạ, nhưng vào cuối ngày nếu bạn không thể làm những gì bạn đang cố gắng thực hiện trong một kịch bản hàng loạt, Hudson cũng không thể làm tốt điều đó.
Hóa đơn

Hudson đã rẽ nhánh vào Jenkins và Oracle Hudson. Muốn chia sẻ cái nào để sử dụng?

1
@ Thorbjørn: Tôi ủng hộ Jenkins. Có nhiều lý do , nhưng kẻ giết tôi đối với tôi là Jenkins đang phát triển tích cực hơn - phần lớn là do Kohsuke Kawaguchi, nhân vật chính đứng sau Hudson, đang ở trong trại Jenkins. Và dường như anh cảm thấy Jenkins là sự tiếp nối thực sự của dự án mà anh bắt đầu . Ồ, và cuối cùng, Jenkins có logo không phải là clip nghệ thuật của Microsoft!
Tom Anderson

@ Thorbjørn - Tôi đồng ý với Tom. Tôi đã không sử dụng Hudson trong khoảng một năm nay (hiện đang sử dụng TFS), nhưng đó là sự đồng thuận chung mà tôi đã nghe nói rằng Jenkins là con đường để đi. Một lần nữa, tôi đã không sử dụng kể từ khi họ rẽ nhánh, nhưng nếu tôi phải nhặt lại, tôi có thể sẽ đi theo con đường Jenkins.
Ryan Hayes

7

Chúng tôi đã phải đối mặt với câu hỏi này một thời gian trước và quyết định đi cùng TeamCity . Chúng tôi chỉ nhìn vào Hudson, CC và TeamCity. Lựa chọn rất dễ thực hiện - TeamCity cuối cùng trở thành máy chủ xây dựng của chúng tôi. Xin lưu ý rằng tôi không phải là người chuyên nghiệp trong việc này và đó là trải nghiệm đầu tiên của tôi với việc xây dựng máy chủ tại thời điểm đó.

Hudson - Tôi không biết phải làm gì và đọc ở đâu về nó. Và mặc dù tôi có thể hiểu điều gì đó nhưng đó không phải là một lựa chọn - quá nhiều công việc. Tôi quyết định xem CC.

Kiểm soát hành trình - giống như Hudson, nhưng theo một cách hơi khác. Hoàn toàn không có gì có thể được hiểu ở đó mà không có hướng dẫn và một tấn trợ giúp từ google. Tôi vừa đi xem TC.

TeamCity - TeamCity cảm thấy như thiên đường sau hai lần đầu tiên. Nó là thứ hữu dụng nhất trong ba thứ đó. Cài đặt, đi đến bảng quản trị, định cấu hình dự án (hiển thị SVN ở đâu, trỏ đến để xây dựng tệp, chỉ định kiểm tra phạm vi / đơn vị, v.v.) và bắt đầu thưởng thức. Và mặc dù tôi không thể nói rằng tôi không google bất cứ điều gì, nhưng 95% quá trình thiết lập là rất dễ dàng và rõ ràng. Tôi đánh giá cao công cụ này. Đi và nhìn vào nó. Nó sẽ giúp bạn tiết kiệm rất nhiều thần kinh và thời gian :)

Tôi cũng nên lưu ý rằng TC không miễn phí. Mặc dù họ có một phiên bản miễn phí có thể được sử dụng trong các dự án thương mại với một số hạn chế (cấu hình tối đa 20) - hãy xem trang giá của họ.

PS Tôi có vẻ như tôi làm việc cho TC, nhưng tôi thực sự không :)


3

Chúng tôi sử dụng CC.NET 1.4.

Chúng tôi đang cố gắng nâng cấp lên 1.6 ... thật là một cơn ác mộng.

Nó mạnh mẽ ... nhưng CHỈ nếu bạn sử dụng đúng và hiểu mọi thứ khớp với nhau như thế nào. Đó là rất nhiều để hỏi từ toàn đội. Chúng tôi có 'người xây dựng' có quyền truy cập vào máy chủ và có thể thay đổi cấu hình. Mặc dù vậy, có rất nhiều Googling liên quan đến ccnet và toàn bộ doanh nghiệp đã trở thành một mớ hỗn độn lớn.

Cá nhân tôi muốn chuyển đến TeamCity.

Tôi khuyên bạn nên tránh xa ccnet.


1

câu hỏi hay. Chúng tôi hiện cũng đang cố gắng tìm ra công cụ nào phù hợp nhất với chúng tôi. Vì vậy, tôi sẽ chỉ có thể nói với bạn một chút kinh nghiệm. Nhưng chúng tôi sẽ rất quan tâm, hệ thống CI nào bạn chọn bây giờ và vì lý do gì. Vì vậy, xin vui lòng thông báo cho chúng tôi.

Tôi rất ấn tượng về mức độ CI của bạn cao như thế nào. Tôi phải thừa nhận rằng chúng tôi có ít yêu cầu hơn vì chúng tôi chưa chạy thử nghiệm UI và không tạo phiên bản cơ sở dữ liệu hoặc tương tự, chúng tôi chỉ sử dụng giả cho các thử nghiệm đơn vị của chúng tôi.

Bây giờ đến kinh nghiệm của chúng tôi cho đến nay:

Đối với các dự án Java, chúng tôi đang sử dụng Tre hoạt động tốt khi sử dụng JUnit và Emma. Và không có quá nhiều nỗ lực để thiết lập một dự án mới.

Đối với các dự án .NET, chúng tôi vẫn đang tìm kiếm giải pháp tốt nhất

  • Kiểm soát hành trình: Chúng tôi chưa thể chạy nó do sự cố với kết nối với kho lưu trữ của chúng tôi

  • TFS:

    a) Có một vài bước thiết lập cần thiết để có thể thực hiện bản dựng đầu tiên.

    b) Có một số cạm bẫy mà bạn phải vượt qua về quyền truy cập. Có nhiều vai trò bạn có thể xác định và bạn phải biết chính xác quyền nào có quy trình xây dựng của bạn và tài khoản nào có tài khoản đăng nhập cá nhân của bạn. Nhưng nếu bạn có đủ thời gian để quản lý, bạn có thể xác định mọi mức độ chi tiết cụ thể mà bạn cần.

    c) Liên quan đến lib được tham chiếu, cũng có một số điều cần quản lý nếu bạn muốn chia sẻ lib cho nhiều dự án và không muốn xử lý chúng ở mỗi dự án

    d) Chạy thử nghiệm NUnit không dễ như chúng ta nghĩ. Nó chỉ dễ dàng nếu bạn đang sử dụng thực thi kiểm tra do Visual Studio cung cấp, nhưng đây không phải là NUnit

    e) Chúng tôi chưa thử chạy NCover (điều đầu tiên trước tiên :-))

  • Hudson: Công cụ tiếp theo chúng tôi sẽ thử. Có vẻ như có một plugin thực sự tốt và dễ dàng cho .NET, tôi sẽ cho bạn biết nó hoạt động như thế nào

  • Tre: Dự đoán đầu tiên chúng tôi nhận được: "Quá cụ thể về Java". Nhưng có lẽ chúng ta sẽ thử plugin .NET, tuy nhiên, tôi sẽ cho bạn biết

Hy vọng, chúng ta có thể tiếp tục cuộc thảo luận và trao đổi kinh nghiệm này.

Andy

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.