Chúng tôi đang cố gắng triển khai quy trình Tích hợp liên tục trong môi trường của mình. Chúng tôi có rất nhiều dịch vụ khác nhau, mỗi dịch vụ có kho lưu trữ Git riêng.Việc triển khai được thực hiện thông qua Puppet, sử dụng bộ phân loại nút bên ngoài để xác định lớp nào sẽ triển khai cho từng loại máy chủ. Và các tệp Con rối đang nằm trong repo Git của riêng chúng, như được mô tả ở đây:
Chỉ có điều, nó không chỉ có 3 dịch vụ, nó giống như 100. Vì vậy, dự án Con rối là khối nguyên khối khổng lồ gồm nhiều tệp kê khai và tất nhiên nó nằm trong repo Git độc lập của riêng nó.
Bây giờ, tôi đi cùng, được giao nhiệm vụ thiết lập một mẫu cho CI, để khi ai đó yêu cầu hợp nhất một nhánh từ, chẳng hạn, Dịch vụ A, thành nhánh chính, chúng tôi sẽ có thể bắt đầu xây dựng CI sẽ tạo môi trường ảo, triển khai Dịch vụ A cho một số máy ảo và đảm bảo rằng nhánh mới vượt qua tất cả các thử nghiệm tự động. Tất nhiên, vấn đề là để triển khai bản dựng mới của Dịch vụ A, tôi không chỉ phải xây dựng nó mà còn phải cập nhật bảng kê khai Con rối để tham khảo phiên bản bản dựng mới...và các tệp Con rối đang nằm trong một repo hoàn toàn độc lập, không thuộc chi nhánh của tôi. Vì vậy, tôi không có cách nào dễ dàng để nói với Bậc thầy Múa rối rằng cái này nhánh, chúng tôi cần sử dụng bản dựng CI, không phải phiên bản chính.
Tôi không thể là người đầu tiên muốn thiết lập CI cho một môi trường như thế này, nhưng tôi đã tìm kiếm các giải pháp trên web và không có kết quả nào. Có lẽ tôi đang sử dụng các cụm từ tìm kiếm sai.
Có ai có thể đề xuất một mẫu thiết kế phù hợp cho phép tôi triển khai CI cho tất cả các kho dịch vụ của mình không?