2012-02-16 44 views
12

Tôi có một công việc xây dựng Jenkins với một kích hoạt Mercurial trên nhánh mặc định, hoạt động tốt để xây dựng "các ứng cử viên phát hành". Công việc này sau đó bắt đầu một công việc thử nghiệm khói.Cách cấu hình Jenkins để xây dựng dự án từ các nhánh khác nhau trong Mercurial

Chúng tôi sử dụng lược đồ phân nhánh theo từng chi nhánh, do đó tại bất kỳ thời điểm nào, có thể có tới hàng chục chi nhánh hoạt động khác nhau trong Mercurial (nhưng các chi nhánh hoạt động thường xuyên thay đổi).

Tôi muốn một công việc Jenkins được kích hoạt bởi những thay đổi đối với bất kỳ chi nhánh nào, sau đó sẽ xây dựng và chạy thử nghiệm khói cho tất cả các chi nhánh cần cập nhật. Mỗi lần chúng ta xây dựng, chúng ta nên tạo các tạo phẩm được đặt tên để khớp với nhánh.

Tôi thấy một đề xuất trong câu trả lời khác bằng cách sử dụng "mẹo" thay vì tên chi nhánh trong trình kích hoạt Mercurial - đây là một khả năng, nhưng tôi nghĩ nó sẽ rơi vào danh mục "chủ yếu là hoạt động". Trình kích hoạt là bỏ phiếu, vì vậy nếu các thay đổi cho nhiều chi nhánh xảy ra trong khoảng thời gian bỏ phiếu, thì có thể bỏ qua một bản cập nhật chi nhánh.

Tôi có thể tạo một công việc mới mỗi khi một chi nhánh được tạo ra, nhưng do tính chất động của các chi nhánh của chúng tôi, đó sẽ là rất nhiều công việc đang diễn ra.

Trả lời

2

Tôi nghĩ bạn cần tùy chỉnh: công việc bỏ phiếu cấp cao nhất (được điều chỉnh theo đầu) chạy tập lệnh tùy chỉnh xác định các nhánh đã thay đổi hoặc đã được thêm vào. Sau đó, nó sẽ sử dụng Jenkins API để bắt đầu một công việc được tham số hóa theo tên chi nhánh. Tham số đó có thể được sử dụng trong công việc của bạn để tùy chỉnh mọi thứ bạn cần theo tên chi nhánh (bao gồm cả các tạo phẩm).

3

Nếu bạn quyết định đi với công việc cho mỗi cách tiếp cận chi nhánh, các công cụ sau đây có thể làm nhiệm vụ một chút dễ quản lý hơn:

Các vấn đề liên quan