2013-05-28 24 views
7

Có thể có một công việc Jenkins đã được kích hoạt bởi các tạo phẩm sao chép ghép nối từ nhiều công việc ngược dòng không?Sao chép các tạo tác từ nhiều công việc ngược dòng khi tham gia trong Jenkins

Tôi đang cố gắng thiết lập cấu hình Jenkins với "kim cương" công việc: kích hoạt của tôi chạy và sinh ra hai công việc, my-fork1 và my-fork2, có thể chạy đồng thời và mất nhiều thời gian khác nhau và plugin Tham gia sẽ tắt công việc của tôi khi cả hai dĩa đã hoàn thành.

Mỗi trình kích hoạt của tôi, my-fork1 và my-fork2 tạo và tạo vân tay (ví dụ: tệp văn bản).

Tôi muốn sao chép các tạo phẩm từ mỗi công việc ngược dòng trong tham gia của tôi bằng cách sử dụng công cụ "Sao chép hiện vật từ một dự án khác", với tham số "Xây dựng" nào được đặt thành "Xây dựng luồng trên đã kích hoạt công việc này". Tuy nhiên, tôi thấy đầu ra như thế này trong giao diện điều khiển của my-tham gia:

xây dựng từ xa trên build-máy trong workspace/path/to/workspace/my-gia

sao chép 1 vật từ "may- cò" xây dựng số 63

sao chép 1 vật từ "my-fork1" xây dựng số 63

Không thể tìm thấy một xây dựng cho bản sao tạo tác từ: my-fork2

và công việc thất bại. Trong trường hợp này, my-fork2 đã hoàn thành trước, vì vậy my-fork1 đã kích hoạt bước kết nối. Tôi tin rằng điều đó có nghĩa rằng tôi tham gia chỉ có hồ sơ của tôi-fork1 và kích hoạt của tôi như là thượng nguồn. Nếu my-fork1 kết thúc trước, thì my-fork2 sẽ không tham gia và công việc thất bại khi cố gắng sao chép từ ngã ba của tôi.

Nếu tôi thay đổi cấu hình để sao chép tạo tác từ bản dựng "Xây dựng thành công mới nhất" thì xây dựng thành công, nhưng trình kích hoạt của tôi có thể chạy nhiều lần liên tiếp nên sẽ không đảm bảo rằng tôi tham gia .

Làm cách nào tôi có thể nhận được bước tham gia để sao chép các tạo phẩm từ nhiều nhánh ngược dòng?

Lưu ý: điểm thứ hai là this question dường như đang hỏi cùng một điều, nhưng câu trả lời duy nhất không giải quyết được vấn đề và đã được chấp nhận.

Cảm ơn tensorproduct

Trả lời

9

Nếu bạn xây dựng được tham số hoá với một tham số duy nhất cho mỗi lần chạy của gia-kim cương, bạn có thể sử dụng tham số trong các plugin CopyArtifact để xác định xây dựng để sao chép từ. Bạn sẽ muốn chỉ định "Xây dựng thành công mới nhất" và đủ điều kiện với thông số và giá trị.

Chúng tôi có tình huống tương tự nơi tôi làm việc; nhiều lần chạy đồng thời của một viên kim cương tham gia. Tham số trong bản dựng cho phép các công việc hạ lưu để có được các tạo tác chính xác từ các công việc ngược dòng.

+0

Yup, nhờ cho điều đó. Cuối cùng, tôi đã sử dụng BUILD_TAG của công cụ kích hoạt để thiết lập một tham số UNIQUE_ID của tất cả các bản xây dựng hạ lưu và sử dụng nó làm điểm đánh dấu nhận dạng cho bước kết nối. – laffoyb

+0

Bạn có thể cung cấp chuỗi chính xác để sử dụng để đạt được điều đó không? Tôi gặp vấn đề ... – dstj

+0

Tôi sợ rằng tôi không làm việc ở nơi tôi đặt sửa chữa này tại chỗ nữa, vì vậy tôi không có chuỗi chính xác để tay. Để tốt nhất của bộ nhớ của tôi, tôi đã sử dụng Plugin kích hoạt tham số để khởi động các bản xây dựng hạ lưu. Tôi đặt tham số theo cách thủ công bằng 'UNIQUE_ID = $ {BUILD_TAG}'. – laffoyb

0

Từng thiết lập Bước của giải pháp được cung cấp từ Jason Swager:

phụ thuộc dự án: kim cương> fork-> diamond_ready

Dự án "ngã ba": Chuỗi tham số "UNIQUE_ID" (chỉ Oâi anh ngờ nghệch không sử dụng bên trong) (Tạo một artifcat và Lưu trữ các hiện vật)

dự án "diamond_ready" Chuỗi tham số: UNIQUE_ID Sao chép các đồ tạo tác từ một dự án khác Tên dự án: ngã ba Parameter lọc: UNIQUE_ID = $ {UNIQUE_ID}

Dự án "kim cương": Kích hoạt tham số xây dựng trên dự án khác dự án để xây dựng: ngã ba Predefinded thông số: UNIQUE_ID = $ {BUILD_TAG} Tham Kích hoạt : Post-Tham Actions: Kích hoạt tham số xây dựng các dự án khác dự án để xây dựng: diamond_ready thông số xác định trước Generator: UNIQUE_ID = $ {} BUILD_TAG