Cơ sở hạ tầng tích hợp liên tục cho nhiều dự án iOS


13

Là một nhà phát triển iOS, tôi đã tìm cách tạo ra một cơ sở hạ tầng CI và CCQ (= Chất lượng mã liên tục) cho các dự án iOS mà chúng tôi đang phát triển cho đến nay. Chúng tôi đã sử dụng Jenkins và SonarQube cho hầu hết các dự án Web và Android (sử dụng dự án VM foreach, cài đặt và định cấu hình CI và CCQ là tự động) và nó hoạt động rất tốt. Nhưng đối với các dự án iOS, Jenkins cần thực hiện việc xây dựng trên máy tính chạy macOS, vì vậy tôi không chắc mình có giải pháp hoàn hảo cho việc đó.

  • Tôi đã xem xét một giải pháp để ảo hóa macOS. Đối với mỗi dự án, để tạo một macOS ảo và cài đặt Jenkins làm nô lệ ở đó để xử lý các bản dựng. Giải pháp có vẻ hoàn hảo, nhưng có vẻ không hợp pháp khi có nhiều hơn 2 VM chạy với macOS (và tất nhiên, chỉ trên máy tính Mac) http://images.apple.com/legal/sla/docs/macOS1012.pdf -> Điểm 2.B. Vì vậy, đây không phải là một giải pháp cho trường hợp của tôi.
  • Một giải pháp phổ biến khác mà tôi đã đọc là có một máy tính Mac (có thể là MacMini) sẽ xử lý tất cả các bản dựng cho tất cả các dự án. Bạn nghĩ gì về việc thực hiện này? Có bao nhiêu dự án có thể xử lý? Các nhà phát triển có thể cần phải thực hiện một số cấu hình trên dự án riêng của họ (đặc biệt là trong SonarQube), có an toàn không?
  • Chúng ta có thể có nhiều phiên bản Jenkins và SonarQube trên cùng một máy, sử dụng các cổng khác nhau không? Đây thậm chí là một giải pháp để được xem xét hoặc tôi đang nói không có ý nghĩa?
  • Có giải pháp khả thi nào khác, có thể tốt hơn những giải pháp trên :)?

Lưu ý: Tôi không gắn bó với bộ đôi Jenkins + SonarQube, nếu có bất kỳ công cụ nào khác phù hợp hơn để phát triển iOS, vui lòng chia sẻ chúng với tôi.


@ Pierre.Vriens: Đó là Chất lượng Mã liên tục. Tôi không chắc đây có phải là một thuật ngữ thường được sử dụng hay chỉ SonarQube sử dụng nó. :)
Dan Bodnar

Câu trả lời:


10

Có giải pháp khả thi nào khác, có thể tốt hơn những giải pháp trên :)?

Đối với Jenkins có lẽ là không, do các vấn đề về giấy phép mà bạn đã đề cập (bạn phải chạy macOS trên phần cứng mang nhãn hiệu Apple). Nếu bạn có thể làm việc với điều đó thì đó chắc chắn là một giải pháp.

Nếu không, thì tôi khuyên bạn nên kiểm tra hệ thống tích hợp liên tục iOS được lưu trữ nơi bạn không phải đối phó với phần cứng / giấy phép của Apple, dịch vụ sẽ quản lý nó cho bạn, ví dụ: https: //www.bitawn. io

Ngoài ra còn có các dịch vụ mà bạn có thể thuê Apple hw và bạn có thể định cấu hình bất kỳ cách nào bạn thích, https://www.macstadi.com là một trong số đó (có thể là dịch vụ lớn nhất).


1
Cảm ơn phản hồi. Tôi vẫn đang tìm kiếm một giải pháp. Tôi nghĩ rằng một MiniMac là cách để đi bây giờ.
Dan Bodnar

2

Tôi nghĩ bạn cũng có thể nhìn vào ảo hóa nhẹ mới cho macOS được gọi là Anka . Anka Build có thể giúp bạn thiết lập cơ sở hạ tầng ảo hóa trên phần cứng của Apple và cho phép bạn cung cấp macOS Vms theo yêu cầu từ Jenkins.

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.