Jenkins Paramerized Trigger + Sao chép Artifact


9

Tôi đang làm việc để thiết lập Jenkins để xử lý các bản phát hành của chúng tôi. Bản dựng phát hành bao gồm trình cài đặt Windows bao gồm một số tệp nhị phân phải được xây dựng trên Linux.

Đây là những gì tôi có cho đến nay:

  • Phần Windows và phần Linux được thiết lập thành các dự án Jenkins riêng biệt.
  • Dự án Windows được tham số hóa, lấy thẻ Subversion để xây dựng và phát hành.
  • Là một phần của bản dựng, dự án Windows kích hoạt bản dựng của thẻ Subversion tương tự cho dự án Linux (sử dụng plugin Parameterized Trigger ) sau đó sao chép các tạo phẩm từ dự án Linux (sử dụng plugin Copy Artifact ) vào không gian làm việc của dự án Windows để chúng có thể được bao gồm trong trình cài đặt Windows.

Nơi tôi đang bị mắc kẹt: Ngay bây giờ, Copy Artifact được thiết lập để sao chép bản dựng thành công cuối cùng. Có vẻ mạnh mẽ hơn khi định cấu hình Copy Artifact để sao chép từ bản dựng chính xác mà Parameterized Trigger đã kích hoạt, nhưng tôi gặp khó khăn khi tìm cách làm cho nó hoạt động. Có một tùy chọn cho tham số "bộ chọn xây dựng" mà tôi nghĩ là có ý định giúp với điều này, nhưng tôi không thể hiểu được nó được thiết lập như thế nào (và thử nghiệm mù quáng với các khả năng khác nhau có phần đau đớn khi quá trình xây dựng mất một giờ hoặc hai để tìm thành công hay thất bại).

Làm thế nào tôi nên thiết lập điều này? Làm thế nào để xây dựng bộ chọn làm việc?

Câu trả lời:


11

Sau khi bạn hoàn thành một bản dựng được kích hoạt, bạn sẽ có một biến env mới được đặt thành số bản dựng của bản dựng được kích hoạt đó có tên TRIGGERED_BUILD_NUMBER_ <tên công việc>. Bạn có thể sử dụng điều đó để sao chép cụ thể lại các vật phẩm:

  1. Windows build (được gọi là " WindowsBuild "), gọi bản dựng Linux (được gọi là " LinuxBuild ") bằng cách sử dụng plugin Parameterized Trigger.

    Bạn đã có phần này, chỉ cần đảm bảo kiểm tra Chặn cho đến khi các dự án được kích hoạt hoàn thành các bản dựng của chúng và dĩ nhiên không xây dựng được nếu bản dựng Linux thất bại.

  2. Tiếp theo trong Sao chép tạo tác từ bước dự án khác :

    Tên dự án: LinuxBuild

    Bản dựng nào: Bản dựng cụ thể

    Số bản dựng: $ TRIGGERED_BUILD_NUMBER_LinuxBuild (Tất cả các tên dự án có các ký tự không phải là a-zA-Z hoặc 0-9 được thay thế bằng _; nhiều ký tự được cô đọng thành một _).


Biến môi trường "$ TRIGGERED_BUILD_NUMBER_ <downstreamjob>" có nên được đặt thủ công không? Tôi không thể tìm thấy nó trong một trong hai biến môi trường ngược dòng hoặc hạ lưu.
harish

1
Tìm thấy từ wiki plugin mà $ TRIGGERED_BUILD_NUMBER_ <downstreamjob> được đặt tự động nếu "Chặn cho đến khi các dự án được kích hoạt hoàn thành bản dựng của chúng" được chọn.
harish
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.