54

Sau khi sử dụng Hudson để tích hợp liên tục với một dự án trước, tôi muốn thiết lập một máy chủ tích hợp liên tục cho các dự án iPhone mà tôi đang làm việc ngay bây giờ. Sau khi thực hiện một số nghiên cứu, có vẻ như không có bất kỳ công cụ CI nào được thiết kế riêng cho Xcode, nhưng một người đã thành công using Cruise Control combined with the xcodebuild CLI tool. Có ai ở đây đã thử điều này? Có bất kỳ công cụ CI nào hoạt động tốt với các dự án Xcode không?Tích hợp liên tục cho các dự án Xcode?

Tôi có thể sẽ cung cấp cho Cruise Control một thử. Tôi sẽ đăng một câu trả lời với những phát hiện của tôi.

+0

Liên kết trong nhận xét ở trên không có tác phẩm đăng nhập –

+0

Kiểm tra [rultor.com] (http://www.rultor.com). Nó là một giải pháp lưu trữ [chạy tất cả các bản dựng trong các thùng chứa Docker bị cô lập] (http://www.yegor256.com/2014/07/29/docker-in-rultor.html). Theo như tôi biết có thể chạy Xcode trong Docker – yegor256

+0

@ yegor256 là nó thực sự có thể chạy Docker với Xcode? Tôi đã không tìm thấy hình ảnh cơ sở với OS X tại Docker Hub: ( – Ponf

Trả lời

36

Tôi đã sử dụng thành công Hudson trên mac với xcodebuild. Với việc phát hành sdk iPhone 3.0, bạn có quyền kiểm soát đối với mục tiêu, cấu hình và sdk rằng dự án sẽ được xây dựng dựa trên.

Nó đơn giản như tạo một bước xây dựng trong hudson và nói xcodebuild để xây dựng dự án:

xcodebuild -target "myAppAppStore" -configuration "DistributionAppStore" -sdk iphoneos2.1 

Công việc trả trước đã được đền đáp cho tôi như tôi builds chỉ làm việc mà không cần bất kỳ suy nghĩ thêm. Tôi đã viết một mô tả chi tiết trên blog của tôi nếu có ai quan tâm.

iPhone app distribution made easy

+0

liên kết của bạn giải quyết thành "Không tìm thấy trang". :( – Spanky

+1

@Spanky - Tôi đã cập nhật liên kết tới blog của Silencode. – itsmatt

9

Adium đang sử dụng buildbot với Xcode khá hiệu quả. Chúng tôi đã viết một makefile đơn giản gọi xcodebuild với các mục tiêu và cấu hình phù hợp, nhưng tôi khá chắc chắn đó là tùy chọn.

+0

Cảm ơn, tôi sẽ kiểm tra xem –

+5

đá Adium! (Uh ... xin lỗi vì nhận xét không có chủ đề.) Không thể cưỡng lại cơ hội để hiển thị một số đánh giá cao) – pestophagous

4

Tôi nghĩ bạn nên vẫn có thể sử dụng Hudson. Hudson rất linh hoạt và cho phép bạn sử dụng tập lệnh shell để xây dựng: Shell Scripts and Windows Batch Commands

Chỉ cần nhập vào đó xcodebuild. Hãy xem trang người dùng xcodebuild để xem các tùy chọn của xcodebuild.

8

Tôi đã sử dụng CruiseControl với Xcode (tương tự với những gì mà Tự động hóa Pragmatic đề xuất) và có thành công hợp lý. Tôi cũng rất quen thuộc với CruiseControl và thiết lập định dạng cấu hình tương đối khủng khiếp.

Tôi cũng đã sử dụng BuildBot để có hiệu quả tốt, nhưng nhận thấy rằng điểm mạnh của nó không thực sự phù hợp với nhu cầu của tôi (xây dựng nô lệ phân phối và báo cáo trên nhiều hệ thống khác nhau). Cấu hình các thiết lập buildbot có thể là một nghệ thuật trong và chính nó, mặc dù nó không khó. Đó là tất cả về cơ bản viết kịch bản trong python.

Vì Hudson đã có sẵn, tôi khuyên bạn nên sử dụng nó làm đại lộ để chạy tích hợp liên tục. Nó có một giao diện dựa trên web (thiếu sót chính của CruiseControl trong tâm trí của tôi) và rất linh hoạt trong các hệ thống khác nhau mà nó hỗ trợ. Bạn có thể gọi các dòng lệnh được xây dựng khá dễ dàng và rất rõ ràng. Điều đó nói rằng, tôi đã không thiết lập một ví dụ bằng cách sử dụng Hudson và Xcode, nơi tôi có cho các hệ thống khác, vì vậy đây là một phần suy đoán về phía tôi.

4

Nếu bạn không nhớ sống ở cạnh cắt, tôi vừa cam kết xcode builder cho CruiseControl.

13

Phục hồi lại chuỗi này. Tôi đã không tìm thấy một giải pháp thỏa đáng để xây dựng XCode tự động với các bài kiểm tra đơn vị trên một máy chủ xây dựng nên tôi đã thực hiện một số điều tra và viết mã. Kết quả là this blog post giải thích tất cả và this Ruby script chuyển đổi kết xuất OCUnit từ xcodebuild sang định dạng XML mà JUnit sử dụng cho các báo cáo thử nghiệm. Máy chủ xây dựng tôi đã chọn là Hudson.

Cập nhật 3/2 2012: Tôi đã cập nhật điều này để sử dụng một số tập lệnh shell tùy chỉnh để xây dựng và chạy.Có sẵn here. Nó không chỉ tốt cho việc tích hợp liên tục mà còn xây dựng từ dòng lệnh trên máy của riêng bạn.

0

Jenkins hoạt động tốt. Bạn có thể Xây dựng dự án xcode của bạn bằng cách viết kịch bản shell của riêng bạn sau đó để cho Jenkins chạy nó, hoặc bạn cũng có thể sử dụng xcode plugin.

Nhưng bạn phải nhận thức được vấn đề về quyền hạn. Với ít chỉnh sửa trong cấu hình Jenkins, bạn sẽ có thể quản lý máy chủ CI của mình trong thời gian rất ngắn.

9

Apple vừa phát hành (ngày 10 tháng 6 năm 2013) cho OSX Mavericks (OS X 10.9) một nền tảng tích hợp liên tục mới là giải pháp tích hợp liên tục tích hợp nhất mà tôi đã thấy trước đây. Nó có sẵn từ developer.apple.com, đây trong trang này có các chi tiết:

https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/xcode_guide-continuous_integration/

tôi khuyên bạn nên để xem phần trình bày WWDC 2013 về chủ đề này.

+0

Điều này thật tuyệt! Xcode cuối cùng cũng nhận được một số công cụ Kiểm tra thích hợp – LightningStryk

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