Giải pháp tốt nhất là sử dụng độc quyền hệ thống CI của bạn cho tất cả các bản dựng có ý nghĩa tổ chức (phát hành, phát hành ứng viên, v.v.).
Điều này có hệ thống liên kết các nhị phân được phát hành với nội dung kho lưu trữ mà không phải thực sự lưu trữ các nhị phân trong kho lưu trữ.
Ví dụ: nếu bạn đang sử dụng SVN, hãy sử dụng sơ đồ tổ chức chính của chi nhánh; thực hiện tất cả sự phát triển hàng ngày trong / thân cây và tạo thẻ / cho mỗi bản phát hành khi nó sẵn sàng.
Định cấu hình hệ thống CI của bạn để xây dựng từ các thẻ cũng như từ thân cây và lấy nó để ghi đầu ra vào thư mục mạng có cấu trúc phản ánh cấu trúc cấp cao nhất của repo:
- / builds / trunk / [rev] [date] [build_id] /
- / bản dựng / thẻ / phát hành_0_1_3beta4 / [rev] [ngày] [build_id] /
Hệ thống xây dựng sẽ cần xử lý / builds / trunk / như bộ đệm tròn, lưu trữ các bản dựng n cuối cùng, xóa các bản dựng cũ khi nó đi.
Mặt khác, thư mục / builds / tags / là một cửa hàng cố định. Bản thân các tạo phẩm xây dựng được lưu trữ trong các thư mục với các tên được tạo theo sơ đồ sau:
trong đó [rev] là ID sửa đổi SVN, [ngày] là ngày ở định dạng YYYYMMDD và [build_id] là một bộ đếm duy nhất gồm 3 chữ số, tăng dần từ bản dựng đầu tiên trở đi, làm cho mỗi thư mục bản dựng trở thành duy nhất.
Quá trình chi tiết ở trên cung cấp cho bạn những lợi ích sau:
Các tạo phẩm xây dựng được gắn một cách có hệ thống với nguồn đã tạo ra chúng, vì vậy bạn có thể tìm thấy nguồn cho một tạo phẩm xây dựng cụ thể rất dễ dàng, (và ngược lại).
Điều này tạo cơ sở cho việc tự động hóa phát hành hơn nữa. Ví dụ: tự động tạo tài liệu phát hành, v.v ...