2009-05-15 39 views
15

Tôi đã xem xét một vài câu hỏi khác về SO - và không thực sự chắc chắn họ trả lời câu hỏi này.Có một công cụ để tích hợp liên tục nền tảng chéo (C++ Win32 và linux)

Chúng tôi đang xây dựng các ứng dụng C++ cho Win32 và Linux. Ngay bây giờ chúng tôi có một số kịch bản (tập tin bat cho win32) chạy trên một lịch trình để làm xây dựng.

Chúng tôi muốn có CI cho các dự án của mình, nhưng tôi muốn chỉ có một máy chủ CI xử lý việc xây dựng trên cả hai nền tảng. Tích hợp với SVN là quan trọng.

Có thể có một cấu hình/một sản phẩm/máy chủ CI thực hiện việc này không?

Có ai đã thực hiện thành công điều này không? Tre trông giống như nó có thể giải quyết nhu cầu của chúng tôi, nhưng tôi ghét phải nhảy vào một chi tiêu như vậy như là một khởi động bootstrapped nếu chúng ta có thể tránh được chi phí.

Trả lời

11

Bạn có thể muốn di chuyển tại Hudson hoặc Jenkins. Mặc dù chủ yếu cho các dự án dựa trên Java, bạn có thể tinh chỉnh chúng cho phù hợp với nhu cầu của bạn. Chúng tích hợp với SVN suôn sẻ, cộng với bạn có thể sử dụng tính năng xây dựng muti-step để gọi các tệp lô (hiện có) của bạn và xử lý thêm.

+0

Nó có thể khởi chạy các bản dựng trên cả hai nền tảng bằng cùng một cấu hình? – Tim

+0

Không chính xác. Nhưng làm thế nào để bạn quản lý với các tập tin .bat? – pugmarx

+1

Bạn sẽ tạo hai "dự án", cả hai đều trỏ vào cùng một kho lưu trữ CM, nhưng được gắn với các tác nhân xây dựng khác nhau, với mỗi tác nhân xây dựng đang chạy trên một nền tảng khác. Rất khả thi (và khá dễ dàng). – Jared

4

TeamCity có thể chạy tác nhân tạo trên các nền tảng khác nhau, ví dụ: một tác nhân xây dựng trên Windows và một trên Linux. Có cấu hình có sẵn để chỉ định các tác nhân xây dựng nào mà mỗi bản dựng đều đi vào.

TeamCity không miễn phí, như trong lời nói, nhưng có miễn phí, như trong bia, phiên bản (Professional Edition) với một số giới hạn (3 đại lý xây dựng, 20 người dùng, 20 cấu hình xây dựng).

+0

có - Tôi đã xem xét điều đó từ câu hỏi tương tự khác. Nó có thể là trận đấu gần nhất. Chúng tôi nhỏ ngay bây giờ và những giới hạn đó có thể sẽ hoạt động. – Tim

+1

TeamCity đặc biệt thân thiện với người dùng. Được thực hiện bởi JetBrains, các nhà sản xuất IDEA Java IDE. Trải nghiệm rất mượt mà với sức mạnh vượt trội. Vẫn uốn bộ não của tôi xung quanh khái niệm "Build Agent" cho phép chạy các bản dựng song song trên các máy chủ phân tán, và sau đó để đối chiếu các kết quả trở lại một kho lưu trữ trung tâm. Ngoài ra, kudo để JetBrains để hỗ trợ một phiên bản Mac OS X và Linux của TeamCity. – GrahamMc

8

Buildbot chắc chắn là một công cụ để xem - http://buildbot.net/trac. Máy chủ trung tâm giám sát tất cả các dự án và thông báo cho các đại lý về các nhiệm vụ mới để bạn có thể xây dựng trên bất kỳ môi trường nào bạn thực sự cần mà không cần thiết lập môi trường biên dịch chéo.

Bạn cũng có thể xem Cruise Control @http://cruisecontrol.sourceforge.net. Trong khi có vẻ như nó hướng đến java xây dựng, bạn có thể làm khá nhiều với nó. Tôi có một thiết lập để xây dựng cánh tay linux & i386 nhị phân và đóng gói chúng thành các deb và duy trì một kho lưu trữ debian từ các kết quả xây dựng - chạy unittests và tất cả các loại nội dung trên mã ..

Nhưng điều tôi thực sự muốn nói là về cơ bản, tất cả các phần mềm máy chủ ci mà tôi đã sử dụng chủ yếu chỉ là "công việc lên lịch" và bạn vẫn cần phải tự xây dựng/cấu hình môi trường xây dựng - trong các kịch bản nhiều nền tảng - các tác vụ lớn hơn để cấu hình phần mềm thực thi các bản dựng và tạo báo cáo tốt đẹp từ họ ..

+1

Buildbot thật tuyệt vời, rất dễ mở rộng và rất có giá trị. Tôi chưa bao giờ xem xét kiểm soát hành trình hoặc bất cứ điều gì nhưng sau đó một lần nữa vì buildbot tôi đã không bao giờ có quá :-). –

+0

Thật vậy - buildbot chính xác như vậy - có khả năng mở rộng cao nhưng với nó, nó cũng hơi khó cấu hình cho người trung bình, nơi mà hầu như không có cấu hình nhưng trong hầu hết các trường hợp thiếu tính năng trừ khi bạn tự vá mã. Cá nhân tôi đã chạy cả hai và cả hai đều có lợi thế của mình phụ thuộc vào từng trường hợp =) – rasjani

+0

BuildBot rất tuyệt vời cho các dự án đa nền tảng. Nhìn vào Mozilla, Webkit và nhiều thứ khác. – Macke

4

Chúng tôi sử dụng Zed Builds and Bugs cho điều này và nó hoạt động thực sự tốt cho chúng tôi. Có một máy chủ trung tâm duy nhất nơi bạn thiết lập định nghĩa xây dựng của mình. Sau đó, đối với mỗi "bước" trong bản dựng đầy đủ, bạn có thể xác định máy chủ nào "bước" sẽ thực thi. Chúng tôi có các bước thực hiện trên: Win32, Linux64, Linux32, HP, AIX, Solaris và thậm chí cả các bước được đẩy trên toàn thế giới để thực thi từ xa. Mỗi một bước có thể được thiết lập để chạy song song hoặc theo chuỗi, do đó, khi HP, AIX, Solaris và Linux đều làm điều tương tự, tất cả chúng có thể chạy song song, và theo dõi Win32 sẽ đợi cho đến khi mọi thứ kết thúc trước khi tiếp tục. Bạn cũng có thể thiết lập các quy trình xây dựng con, sau đó khởi chạy chúng từ bản dựng "chính" để bạn có thể tạo các chuỗi tạo phức tạp hơn sẽ chạy độc lập với nhau, nhưng tất cả được gắn với nhau thông qua định nghĩa xây dựng chính.

Đó không phải là miễn phí, nhưng số lượng thời gian mà nó đã cứu chúng ta (tôi nói riêng) cũng đã thanh toán cho các chi phí của phần mềm nhiều lần.

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