2010-02-15 21 views
5

Có 4 công việc:Làm thế nào để chạy công việc ở Hudson theo một số thứ tự được xác định trước?

Build1 
Build2 
Test1 
Test2 

Build1Build2 có thể được bắt đầu cùng một lúc.
Test1 chỉ nên bắt đầu khi cả hai Build1Build2 sẽ được hoàn tất.
Tes2 chỉ nên bắt đầu khi Tes1 sẽ được hoàn tất.
Ngoài ra, tôi muốn có khả năng bắt đầu tất cả các công việc này một cách riêng biệt.
Có cách nào để thiết lập công việc theo các quy tắc này không?

Trả lời

4

Khi tạo một công việc mới, bạn thường có thể chỉ định dự án thượng lưu nào phải được xây dựng để bắt đầu công việc này.

Tùy chọn này có trong Trình kích hoạt trình tạo -> Xây dựng sau khi các dự án khác được xây dựng khi tạo/sửa đổi công việc.

+0

Tôi muốn bắt đầu ** Build1 ** và ** Build2 ** cùng một lúc. Nhưng tôi không thể cấu hình ** Test1 ** để bắt đầu nó khi cả hai ** Build1 ** và ** Build2 ** sẽ được hoàn thành. Có thể bắt đầu ** Test1 ** khi ** Build1 ** hoặc ** Build2 ** sẽ được hoàn thành. Tôi có đúng không? –

+0

Bạn cũng sẽ cần phải kiểm tra "Block build khi upstream project đang xây dựng" trong Advanced Project Options. Điều này sẽ ngăn chặn Test1 xây dựng nếu Build1 hoặc Build2 nằm trong hàng đợi. –

+0

Tôi không có tùy chọn như vậy. Bạn sử dụng phiên bản Hudson nào? –

2

Tôi nghĩ bạn có một số tùy chọn. Giả định của tôi là, chúng ta đang nói về các công việc đang chạy dài, nếu không tôi sẽ kết nối chúng lại với nhau thành một công việc quái vật (một số bước xây dựng trong một công việc) và tạo các công việc riêng biệt để chạy riêng chúng.

Như đã đề cập, đối với các công việc lâu dài, hãy xem join plugin. Như một FYI chung, có một trang giải thích lý do tại sao bạn muốn tách các công việc thử nghiệm khỏi các công việc xây dựng. Xem here.

+0

Plugin Tham gia là chìa khóa ở đây. –

0

Tôi đang chạy phiên bản 1.346 của Hudson.

Bạn có thể chọn 'Xây dựng sau khi các dự án khác được xây dựng' trong 'Trình kích hoạt trình tạo'.

Nó nói rằng "Nhiều dự án có thể được quy định như 'abc, def"

Vì vậy, bạn nên có thể thêm 'Build1, Build2' đến lĩnh vực đó trong cấu hình cho Test1.

+0

Từ văn bản trợ giúp cho 'xây dựng sau khi dự án đang xây dựng': * Thiết lập trình kích hoạt để khi một số dự án khác hoàn thành xây dựng, một bản dựng mới được lên lịch cho dự án này. Điều này thuận tiện cho việc chạy thử nghiệm mở rộng sau khi xây dựng hoàn tất, ví dụ. * - về cơ bản, Test1 sẽ được kích hoạt khi xây dựng một hoặc hai được thực hiện, không phải sau khi hoàn thành hai. Trong trường hợp cụ thể này, bạn có thể gặp phải vấn đề đó với plugin khóa và chốt. –

0

Bạn có thể giữ cho Test1 & Test2 của bạn dưới dạng các công việc riêng biệt, thay vì là một phần của bản dựng.

Khi Build1 và Build2 hoàn tất, Test1 có thể bắt đầu dưới dạng bản dựng hạ lưu. Test2 có thể là một công việc hạ lưu từ Test1.

1

"Plugin xây dựng quảng cáo" có thể là giải pháp tốt: bạn có thể định cấu hình công việc chính "Xây dựng" để không làm gì ngoài việc bắt đầu xây dựng 2 luồng "Build1, Build2" (trong các hành động sau xây dựng). Sau đó, bạn phải thêm quy trình quảng bá "Khi các dự án hạ lưu sau xây dựng thành công" chọn "Build1, Build2", với hành động xây dựng hạ lưu liên quan của "Test1". Nếu xây dựng "Build1" và "Build2" thành công (cả trạng thái Ổn định), "Xây dựng" sẽ được quảng cáo và "Test1" sẽ được đặt hàng. Cuối cùng, bạn kích hoạt Test2 như một hành động sau xây dựng của Test1.Nhưng bạn phải biết rằng trường hợp nhiều phiên bản "Xây dựng" được xếp hàng, bạn không thể dựa vào permalink xây dựng cuối cùng thành công (tiếp theo "Build1" hoặc "Build2" có thể đã được xây dựng khi "Test1" được gọi bởi "Xây dựng" đầu tiên sẽ bật ra khỏi hàng đợi) và bạn sẽ phải nghĩ ra cách để theo dõi bản sửa đổi của bản dựng mà bạn đang thử nghiệm.

Plugin kích hoạt tham số có thể giúp giải quyết vấn đề này: ví dụ: bạn có thể chuyển id của công trình dựng ngược dưới dạng tham số.

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