2013-01-23 46 views
7

Trong môi trường mà nhiều bản dựng (phát hành gói ứng cử viên) có thể được tạo hàng ngày nhưng chỉ một tháng được quảng cáo sản xuất, tôi nghĩ rằng việc lưu trữ mọi bản dựng trong Git sẽ lãng phí nhưng phải có vị trí ngắn hạn Được xuất bản.Git có nên được sử dụng để lưu trữ các bản dựng tích hợp liên tục không?

Tôi hiện đang xuất bản các thư mục này vào một thư mục được chia sẻ. Tôi đã xem IVY được sử dụng cho loại xuất bản nhị phân này trong quá khứ. Git có vẻ như quá mức cần thiết vì nó sẽ sưng lên do mô hình của nó không bao giờ xóa bất cứ điều gì.

Có cách nào được chấp thuận, chuẩn hóa về quản lý/xuất bản các tạo tác xây dựng tạm thời này không?

+4

Tại sao bạn lưu trữ đồ tạo tác? Các bản dựng có thể được tạo lại. –

+0

(Ý tôi là trong git. Tuy nhiên, hầu hết các máy chủ CI đều giữ khoảng thời gian có thể cấu hình được không?) –

+0

Các bản dựng có thể được tạo lại nhưng đôi khi không thể xây dựng môi trường. Unles bạn giữ toàn bộ chuỗi công cụ của bạn dưới sự kiểm soát sửa đổi không có sự chắc chắn rằng bạn có thể xây dựng cùng một nhị phân sau một khoảng thời gian lớn đã trôi qua. Ngoài ra, không thể xây dựng chính xác cùng một nhị phân (dấu thời gian được nhúng dẫn đến các tổng kiểm tra tệp khác nhau). Điều này gây khó khăn cho các bên thứ 3 tin tưởng hoặc xác nhận phần mềm của bạn trừ khi họ cũng xây dựng nó từ nguồn. –

Trả lời

10

Tôi sẽ không lưu trữ các tạo phẩm xây dựng trong git mà thay vào đó hãy chia sẻ các tạo phẩm xây dựng từ máy chủ tích hợp Continuos (CI) hoặc kho lưu trữ đồ tạo tác chuyên dụng như artifactory hoặc nexus. Nói chung tôi tìm thấy nó tốt nhất để tránh các tệp nhị phân lớn trong tất cả SCM vì bạn không thể phân biệt chúng hoặc thực hiện cập nhật gia tăng để bạn tìm thấy repo git của bạn phát triển nhanh chóng khi nó lưu trữ một phiên bản hoàn chỉnh của nhị phân trên mọi thay đổi.

Hầu hết các công cụ tích hợp liên tục (như Jenkins) sẽ có khả năng lưu trữ các tạo phẩm X xây dựng cuối cùng hoặc tất cả các tạo phẩm xây dựng được tạo trong tháng trước. Họ cũng có các plugin giúp hỗ trợ và tự động hóa quá trình quảng cáo các bản dựng mà bạn thấy hữu ích (ví dụ: Jenkins build promotion).

Bằng cách sử dụng kho lưu trữ hoặc máy chủ CI để quản lý các tạo phẩm xây dựng, bạn cũng có thể truy cập vào các tạo phẩm thông qua API, rất hữu ích khi bạn muốn tự động hóa quy trình triển khai ví dụ như bạn có thể thực hiện các cuộc gọi như 'getLastSuccesfullBuild' và 'getLastPromotedBuild()' v.v.

+2

Quản lý kho lưu trữ +1 như Nexus, Artifactory hoặc Archiva, được thiết kế để giải quyết vấn đề này. Kiểm tra các tính năng của họ. Chúng tôi sử dụng Nexus chuyên nghiệp cho phép chúng tôi "giai đoạn" các bản phát hành của chúng tôi và tạo quy trình công việc chứng nhận, nơi DEV tạo các tạo phẩm xây dựng, sau đó được chấp thuận bởi Kiểm tra và QA trước khi nhấn vào kho sản xuất. –