2011-01-12 34 views
18

Chúng tôi có mã nguồn được lưu trữ trong kho lưu trữ Kiln/Mercurial; chúng tôi sử dụng MSBuild để xây dựng sản phẩm của mình và chúng tôi có Bài kiểm tra đơn vị sử dụng MSTest (Kiểm tra đơn vị Visual Studio).Các khuyến nghị để tích hợp liên tục cho Mercurial/Kiln + MSBuild + MSTest

Giải pháp nào tồn tại để triển khai máy tích hợp liên tục (ví dụ: Máy xây dựng).

Các yêu cầu cho việc này là:

  • Một xây dựng nên được đá khi cần thiết (ví dụ mã đã thay đổi trong Repositories chúng ta quan tâm)
  • Trước khi xây dựng thực tế, phiên bản mới nhất của mã nguồn mã phải được mua từ kho chúng tôi đang xây dựng từ
  • việc xây dựng phải xây dựng toàn bộ sản phẩm
  • việc xây dựng phải xây dựng tất cả các Unit Tests
  • việc xây dựng phải thực hiện tất cả kiểm tra đơn vị
  • Tóm tắt thành công/thất bại phải được gửi đi sau khi quá trình xây dựng kết thúc; điều này phải bao gồm thông tin về bản thân xây dựng mà còn về việc Kiểm tra Đơn vị nào bị lỗi và những thành công nào đã thành công.
  • Bản tóm tắt phải chứa những thay đổi trong bản dựng này chưa có trong thành công trước đó! (01) Xây dựng
  • Hệ thống phải được cấu hình để nó có thể xây dựng từ nhiều nhánh (/ Kho lưu trữ).

Lý tưởng nhất, hệ thống này sẽ chạy trên một hộp (sản phẩm của chúng tôi không lớn) mà không có bất kỳ thành phần máy chủ nào.

Giải pháp nào hiện có sẵn? Ưu/nhược điểm của họ là gì? Từ danh sách trên, những gì có thể được thực hiện và những gì không thể được thực hiện?

Cảm ơn

Trả lời

5

sản phẩm của chúng tôi BuildMaster làm tất cả những điều bạn liệt kê theo thiết kế và có một miễn phí, phiên bản phần nào hạn chế (ví dụ như bạn chỉ có thể có một số giới hạn của các nhà cung cấp theo dõi vấn đề tích hợp với nó, sự thay đổi cơ sở dữ liệu công cụ đóng gói tập lệnh không được bao gồm trong phiên bản miễn phí, v.v.) cho 5 người dùng trở xuống.

7

TeamCity, từ JetBrains, các nhà sản xuất của ReSharp, sẽ làm tất cả điều đó. Bạn sẽ phải cấu hình nó cho những gì cụ thể nó có nghĩa là để "xây dựng sản phẩm của bạn", nhưng bạn có thể cấu hình lên tất cả mọi thứ bạn chỉ định với nó.

Phần mềm có thể cảnh báo bạn về các bản dựng không thành công, thậm chí chỉ để cảnh báo người chịu trách nhiệm kiểm tra mã đã phá vỡ bản dựng. Nó thậm chí đi kèm với các trang web tiện dụng mà bạn có thể xem để xem chỉ những thay đổi của riêng bạn, mà xây dựng chúng đã thành công, cái nào đang chờ xử lý và những cái nào hiện đang được thực hiện.

Vì đây là sản phẩm được phân phối, bạn có thể làm cho sản phẩm được phát triển với tổ chức và sản phẩm của mình. Nếu tại một thời điểm nào đó bạn phát hiện ra rằng bạn đang chờ đợi quá trình xây dựng hoàn thành quá nhiều, bởi vì rất nhiều bản dựng đang được xếp hàng đợi, bạn có thể bổ sung thêm các tác nhân xây dựng khác. Các tác nhân xây dựng về cơ bản là các chương trình máy khách riêng biệt mà bạn cài đặt trên các máy bổ sung, thực thi các cấu hình xây dựng thực tế.

Nó có hai phiên bản, phiên bản chuyên nghiệp và phiên bản doanh nghiệp. Phiên bản chuyên nghiệp là miễn phí, có thể chứa tối đa 20 cấu hình xây dựng, 20 người dùng và 3 tác nhân xây dựng.Phiên bản doanh nghiệp có người dùng không giới hạn và cấu hình xây dựng và bạn cũng có thể sử dụng bảo mật dựa trên LDAP (nghĩ rằng người dùng đã được xác minh miền). Ngoài ra còn có một số phần thưởng khác từ phiên bản doanh nghiệp. Bạn cũng có thể mua giấy phép cho nhiều đại lý xây dựng nếu bạn cần nhiều hơn ban đầu 3.

Bây giờ, nếu "không có thành phần máy chủ" có nghĩa là bạn không muốn nó hoạt động như máy chủ web, bạn sẽ khó ép để tìm một cái gì đó sẽ phản ứng với cam kết của bạn.

Tuy nhiên, nếu bạn muốn nói rằng bạn không muốn cài đặt hệ điều hành máy chủ thì TeamCity cũng có thể làm việc trên các phiên bản máy trạm của Windows. Đó không phải là để nói rằng bạn không nên xem xét việc thiết lập một máy chủ thích hợp cho nó, nhưng nó sẽ chạy trên một máy trạm nếu đó là những gì bạn yêu cầu.

+0

Tôi đã bỏ CruiseControl cho TeamCity và toàn bộ nhóm của tôi rất hài lòng với thay đổi này. Chúng tôi sử dụng MSBuild script cho các dự án và NUnit để thử nghiệm. Chúng tôi phát triển chủ yếu các ứng dụng C++ và C# – T33C

0

Luôn có BuildBot mà tôi thích (và đã đóng góp một số mã). Nó khá dễ dàng để thiết lập và chạy trên bất kỳ hệ điều hành nào, và để thực hiện các tác vụ đơn giản như bạn nói và linh hoạt đáng kể nếu bạn cần.

Những gì bạn có thể thấy là thiếu bộ ghi nhật ký bao gồm pin và/hoặc trình tạo báo cáo mà các máy chủ CI thương mại khác đi kèm, đặc biệt là cho các khuôn khổ Enterprise-y.

Quy mô cũng khá tốt, Mozilla và Chromium sử dụng nó, trong số những thứ khác.

2

Điều bạn mô tả là những điều cơ bản của Công cụ CI, vì vậy mọi Công cụ CI đều phải OK.
Tôi sử dụng Kiểm soát hành trình.NET nhưng nó bị lỗi với Mercurial và không đơn giản ngay từ cái nhìn đầu tiên. Tôi vẫn hài lòng với nó. Các công cụ khác có trong tâm trí của tôi là Hudson, Xây dựng nhóm (từ TFS)TeamCity.

Tôi chưa thử các công cụ khác nhưng bạn có thể thấy những ưu/nhược điểm ở đây:

EDIT: Tôi quên đề cập đến Hudson và Cruise Control.net là mã nguồn mở chuyên nghiệp ject, bạn có thể dễ dàng viết các plugin và bản vá cho bản cài đặt của mình.

EDIT²: Lỗi Mercurial dường như được sửa trong phiên bản 1.6 sắp tới của ccnet (thay đổi được cam kết với thân cây trong tuần này).

Các vấn đề liên quan