2012-09-04 33 views
6

Plugin Jenkins Join cho phép một công việc được chạy sau khi tất cả các công việc ngay lập tức hạ lưu đã hoàn thành.Jenkins - công việc kích hoạt sau khi tất cả các công việc hạ lưu đã hoàn thành, không chỉ những công việc trước mắt

Nhưng làm cách nào tôi có thể định cấu hình công việc để chạy sau khi tất cả công việc hạ lưu đã hoàn thành, không chỉ các công việc trước mắt?

Con số này cho thấy việc kích hoạt dòng chảy tôi mong đợi:

      A 
          | 
        --+----+------+-- 
         |   | 
         v   v 
         B   C 
         |   | 
    --+--------+-----+---+--  | 
     |  |   |  | 
     v  v   v  | 
     D  E   F  | 
     |  |   |  | 
     v  |   |  | 
     G  |   |  | 
     |  |   |  | 
    ---+--------+----+----+-------+-- 
        | 
        v 
        J 

tôi đặt Tham Trigger trên công việc từ A đến kích hoạt các công việc chính thức J. Tuy nhiên công việc J đang bắt đầu một lần B và C đã kết thúc, không chờ đợi đối với các công việc D, E, F và G.

Trong this answer và các nhận xét của nó, nó nói rằng các đường dẫn có thể là nhiều công việc và dấu vân tay phải được sử dụng chính xác. Nhưng tôi không thể tìm ra cách để nó hoạt động.

Trả lời

5

Plugin Tham gia chỉ hoạt động khi mọi thứ được chia thành "kim cương" phụ thuộc: một công việc bắt đầu, một hoặc nhiều công việc hạ lưu, nhưng chỉ có một cấp sâu (D và G là hai cấp sâu trong sơ đồ của bạn), theo sau là một công việc đã tham gia. Cấu trúc phụ thuộc của bạn không theo mô hình kim cương đó.

Trong trường hợp cụ thể này, tôi sẽ sử dụng Promoted Builds Plugin. Thiết lập công việc A để quảng cáo khi được kích hoạt, chạy Job J. Kích hoạt chương trình khuyến mãi đó là hoàn thành thành công B, C, D, E, F, G. Hoặc nếu muốn giảm thiểu nó: G, EF, C Chỉ cần đảm bảo rằng vân tay được thiết lập chính xác.

Để lấy dấu vân tay, hãy tạo tệp (hoặc chọn một tệp hiện có) trong Công việc A. Tạo tác phẩm đó và lấy dấu vân tay. Trong tất cả các công việc sau B-G, sử dụng plugin CopyArtifact để truy xuất tệp đó vào công việc và lấy dấu vân tay ở đó.

+0

Bạn có thể xây dựng một chút thiết lập tạo vân tay và quảng cáo không? Tôi đã hỏi gần như cùng một câu hỏi [ở đây] (http://stackoverflow.com/questions/26101765/jenkins-pipeline-top-level-join-gets-triggered-before-sub-level-join) – dstj

+0

Xong - câu trả lời đã được được cập nhật với thông tin bổ sung về vân tay. –

3

Trong trường hợp ai đó đang tìm kiếm cách dễ dàng chỉ cần sử dụng JobFanIn plugin. Plugin này sẽ cho phép bạn đặt trình kích hoạt trên công việc J khi C, E, F & G được xây dựng và ổn định

+1

Chính xác những gì tôi cần, xây dựng giải pháp phụ thuộc đơn giản nhờ. – dkanejs

+0

không cho phép bạn chuyển các tham số từ công việc ngược dòng đến công việc đã hợp nhất. –

+0

đó là một giới hạn tôi đoán. Plugin tháng năm có thể được tăng cường để làm điều đó nhưng với nhiều dự án thượng lưu đi qua các thông số sẽ phải xử lý nó công việc hạ lưu là tốt. Sẽ xem liệu điều này có thể được thêm vào trong plugin hay không – Yogesh

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