Tích hợp liên tục (với các dự án iOS và Android) [đã đóng]


10

Tôi đang cố gắng thực hiện một số thay đổi tích cực trong công ty của mình và một trong những thay đổi đó là triển khai tích hợp liên tục. Chúng tôi phát triển di động (iOS / Android) vì vậy tôi cần một CI hỗ trợ cả hai loại dự án. Như bạn có thể nói tôi không biết nhiều về CI nhưng tôi đã hiểu được một chút và tôi nghĩ rằng Jenkins và Hudson là hai người nổi tiếng nhất.

Tôi có một câu hỏi gồm hai phần.

  1. Suy nghĩ của bạn về Jenkins?
  2. Có cách nào để CI kiểm tra xem dự án có đang biên dịch theo các
    tiêu chuẩn mã hóa hay không (như khớp nối lỏng lẻo và vân vân)?

3
"Jenkins và Hudson là hai" ... hmm, bạn có biết rằng Jenkins là tên mới của Hudson không?
gnat

1
Tôi thực sự không biết điều đó! Như tôi đã nói, tôi thực sự mới với CI và có 0 kinh nghiệm. Soooo .. J & H cũng vậy .. Đoán rằng thu hẹp các lựa chọn của tôi :)
paxx

Ngoài ra còn có Team City, Cruise Control và những người khác.
Kyle Hodgson

@gnat: tôi cũng nghĩ jenkins là một ngã ba của Hudson. Tôi nghĩ rằng hudson vẫn còn ở ngoài đó: hudson-ci.org được quản lý bởi Oracle. Jenkins là một ngã ba rất tốt mà hầu hết mọi người di cư. Xin lỗi nếu tôi sai ...
dbalakirev

Câu trả lời:


9

Trước tiên, bạn có thể muốn xem TeamCity như một tùy chọn khác cho máy chủ của mình.

Theo quan điểm của tôi (mặc dù tôi có ít kinh nghiệm với Jenkins hơn so với TeamCity) cả hai đều là những công cụ tuyệt vời và rất có khả năng - Tôi sẽ hạnh phúc trong một môi trường sử dụng một trong hai.

Ok, để đi đến phần cốt lõi của vấn đề tức là

Có cách nào để CI kiểm tra xem dự án có đang biên dịch theo các tiêu chuẩn mã hóa hay không (như khớp nối lỏng lẻo và vân vân)?

Ở cấp độ cơ bản nhất, tất cả những gì máy chủ CI thực hiện là chạy tập lệnh và sau đó diễn giải và trình bày kết quả chạy tập lệnh đó - vì vậy nếu bạn có thể viết tập lệnh thì máy chủ CI của bạn có thể chạy tập lệnh đó và nếu bạn có thể định dạng đầu ra một cách thích hợp thì máy chủ CI có thể có thể giải thích và báo cáo về kết quả.

Tất nhiên, các máy chủ xây dựng chính đã có khả năng nói chuyện / tích hợp với rất nhiều công cụ phổ biến - vì vậy câu hỏi thực sự là bạn đang sử dụng công cụ nào để kiểm tra các tiêu chuẩn mã hóa của mình và tích hợp với máy chủ CI bạn chọn.

Đúng vậy, máy chủ CI mang lại nhiều hơn cho trò chơi về mặt tự động hóa thay vì chỉ vô thức chạy một kịch bản - nhưng vào cuối ngày đó là những gì nó đang làm.


Nói rõ hơn - Tôi biết rằng một máy chủ xây dựng không chỉ chạy các tập lệnh, nó tự động hóa quá trình (và đặc biệt là tích hợp với (D) VCS) làm tăng giá trị - nhưng khi trả lời "tôi cần gì một máy chủ xây dựng "câu hỏi câu trả lời là" một máy chủ và tập lệnh "mọi thứ khác chảy từ đó.


Tôi đã sử dụng TeamCity khá thành công với tư cách là máy chủ CI cho iOS. Tôi tưởng tượng rằng nó là không có trí tuệ để sử dụng nó cho Android
sylvanaar

5

Tôi thứ hai khuyến nghị TeamCity - nó là một sản phẩm tuyệt vời. Tôi không thể nói chuyện với Android vì tôi không có thời gian ngồi ở đó, nhưng tôi đã thành công khi các dự án iOS chạy trong CI nhờ hai bài viết ( 1 2 ).

Các phần khó nhất thực sự phải làm với việc chạy mac để xây dựng tự động với móc khóa thích hợp và như vậy bạn có thể tạo một ứng dụng đã ký mà bạn có thể triển khai lên iDevice thay vì chỉ tùy chọn giả lập.


Có thể cài đặt TeamCity lên máy chủ linux và sau đó làm cho nó xử lý các dự án iOS không?
paxx

1
TeamCity không quan trọng, đó là tác nhân xây dựng. Và đối với iOS, bạn sẽ phải triển khai lên máy mac. Chỉ có nó mới có toolchain. Bạn có thể có thể làm một số thứ bằng cách sử dụng GNUStep nhưng sự nghi ngờ của tôi là bạn sẽ có một khoảng thời gian khá bực bội với bất cứ điều gì không tầm thường.
Wyatt Barnett

2

Tôi đã thiết lập máy chủ và tập lệnh xây dựng của công ty chúng tôi trước khi sử dụng Jenkins nơi chúng tôi phát triển ứng dụng iOS. Giống như nhiều người đã nói, máy chủ CI khá đơn giản và tôi thích Jenkins vì nó là nguồn mở / miễn phí và có nhiều plugin như báo cáo bảo hiểm công khai hoặc tích hợp github.

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.