2009-12-04 42 views
12

Tôi có bố trí dự án sau:Triggering dự án thượng nguồn xây dựng trước khi dự án hạ

  • WAR Dự án A
    • Dự án Upstream
      • phụ thuộc B
      • phụ thuộc C
      • phụ thuộc D

tôi đang tìm cách để thiết lập một để mỗi khi tôi muốn kích hoạt một xây dựng, nó sẽ lần đầu tiên xây dựng B, C và D. Nếu một trong hai xây dựng cho B, C, hoặc D thất bại sau đó A xây dựng nên thất bại là tốt.

Dường như trường hợp xây dựng chung, nhưng tôi không chắc chắn cách thực hiện nó. Có các tùy chọn sau nhưng họ dường như không có mối quan hệ ngay:

  • Build Những yếu tố dẫn - Xây dựng sau khi các dự án khác đang được xây dựng
    • Sẽ xây dựng các dự án hiện tại sau khi một số dự án ở thượng nguồn, nhưng tôi cần để kiểm soát việc xây dựng từ dự án này vì tôi đang triển khai WAR. Tôi chỉ muốn luôn luôn xây dựng phụ thuộc đầu tiên.
  • Post-xây dựng Actions - Xây dựng các dự án khác
    • Sẽ xây dựng các dự án sau này, mà đó là ngược cho những gì tôi muốn làm.

Có cấu hình xây dựng ở Hudson (hoặc thông qua plugin) sẽ hoạt động cho tôi không?

Trả lời

5

Điều này xuất hiện trên danh sách gửi thư của Hudson rất gần đây. Không có hỗ trợ trực tiếp cho loại cấu hình xây dựng này ở Hudson.

Xem chủ đề này: http://jenkins.361315.n4.nabble.com/On-demand-build-dependency-handling-simple-2-job-build-td624395.html

Bạn có thể sử dụng các plugin Tham gia để tạo ra một 'xây dựng + triển khai' công việc. Nó sẽ có B, C và D là các dự án hạ lưu, và sau đó 'A' sẽ trở thành mục tiêu tham gia.

Vì vậy, B C và D sẽ cần phải hoàn tất thành công. Nếu có, thì công việc 'triển khai' đồng bằng của A sẽ được khởi chạy. Nếu có bất kỳ lỗi nào, A sẽ không khởi chạy. Điều này có hiệu quả giống như những gì bạn đang yêu cầu.

Bạn có thể đọc về tham gia cắm ở đây: http://wiki.hudson-ci.org/display/HUDSON/Join+Plugin

+0

Cảm ơn bạn đã tham khảo bài đăng này rất kỹ lưỡng. Đối với các bản dựng của tôi, sử dụng maven2, nó sẽ đủ cho tôi để thăm dò ý kiến ​​về các công việc phụ thuộc (B, C, và D từ câu hỏi gốc), xuất bản tới repo maven2, và chạy dự án A's build bất cứ khi nào tôi muốn. Cảm ơn bạn lần nữa. Các áp phích đã đúng, bạn không thực sự cần loại thiết lập này, nếu bạn có thể dựa vào quản lý phụ thuộc của maven/ivy. – abargnesi

+0

Liên kết tọc mạch là 404 – Nemi

1

Hãy nhìn vào các dự án Apache Ivy (http://ant.apache.org/ivy/). Nó xử lý các phụ thuộc dự án rất tốt, và nó có một plugin cho Hudson. Từ cách bạn mô tả vấn đề, tôi nghĩ rằng giải pháp này sẽ làm việc cho bạn.

+0

Tôi không đề cập đến trong bài đăng gốc mà chúng tôi đã sử dụng maven2 cho tất cả các bản dựng của chúng tôi. Tôi đã bị treo lên hoàn toàn nguyên tử, nhóm lại, xây dựng mà tôi đã không nhận ra maven2/scm bỏ phiếu sẽ làm các trick khá hiệu quả. Cảm ơn vì thông tin. – abargnesi

1

Tôi nghĩ rằng Join Plugin, là những gì bạn đang tìm kiếm.vì vậy bạn thiết lập công việc A-Trigger kích hoạt B, C, D và chờ cho đến khi tất cả được hoàn thành và hơn A được kích hoạt.

+0

Plugin tuyệt vời, không thấy điều đó. Tôi sẽ thử! – abargnesi

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