2014-07-09 16 views
5

Đây là vấn đề tôi gặp phải - Tôi cần kích hoạt công việc 2 giờ một lần nhưng chỉ khi có cam kết git (bỏ qua nếu không có Hoạt động). Tôi có thể giải quyết chúng riêng lẻ nhưng không chắc chắn cách giải quyết chúng lại với nhau - bất kỳ ai cũng có ý tưởng hay không? Người duy nhất tôi có thể đưa ra là một công việc cron sẽ kiểm tra mỗi 2 giờ và nếu có một git cam kết trong thời gian đó, kích hoạt một công việc thủ công, nhưng điều đó không nhìn tất cả những gì tao nhã.Kích hoạt Jenkins xây dựng cứ 2 giờ một lần nhưng chỉ khi có git commit

Bất kỳ ý tưởng hay nào được đánh giá cao.

Trả lời

8

Set Jenkins lập để sử dụng "Thăm dò ý kiến ​​SCM" kích hoạt mỗi 2 giờ (0 */2 * * *) hoặc một cái gì đó như thế

Nó sẽ cập nhật từ git và, nếu có một sự thay đổi, kích hoạt một bản dựng.

+3

Tốt hơn nên sử dụng "H */2 * * *" để phân phối tải đồng đều trong suốt một giờ. – greggles

2

Chỉ cần thiết lập công việc để thăm dò ý kiến ​​SCM mỗi 2 giờ. Nếu có một cam kết trong 2 giờ trước nó sẽ xây dựng.

8

H H/2 * * *

Poll SCM sẽ xảy ra ở phút ngẫu nhiên mỗi khoảng thời gian ngẫu nhiên 2 giờ.

+0

Điều này tốt hơn việc sử dụng 0 */2 * * * vì điều này giúp phân phối tải đồng đều, chọn thời gian ngẫu nhiên với một giờ thay vì đặt một phút cụ thể khi xây dựng nên bắt đầu. –

3

Nếu bạn chỉ đặt Poll Scm với biểu thức cron H H/2 * * *, nó sẽ kích hoạt bản dựng cho mỗi 2 giờ nhưng bản dựng cũng sẽ được kích hoạt nếu một cam kết git xảy ra và chưa đến 2 giờ.

Nếu bạn bật tùy chọn "Bỏ qua móc sau cam kết" cùng với sự biểu hiện cron trên trong Poll SCM, điều này sẽ bỏ qua những thay đổi theo thông báo của SCM sau cam kết móc và bây giờ là xây dựng sẽ được kích hoạt chỉ khi có là một cam kết và nó đã được 2 giờ.

Với bước này, bạn hoàn toàn có thể tránh mọi can thiệp thủ công để kích hoạt các bản dựng.

Các biểu tượng trợ giúp cho tùy chọn này giải thích tính năng của nó rõ ràng là,

Điều này có thể hữu ích nếu bạn muốn ngăn chặn một số công việc lâu dài (ví dụ báo cáo) bắt đầu vì mỗi cam kết, nhưng vẫn muốn để chạy chúng định kỳ nếu thay đổi SCM đã xảy ra.

Lưu ý rằng tùy chọn này cũng cần được hỗ trợ bởi plugin SCM! Plugin subversion hỗ trợ tính năng này kể từ phiên bản 1.44.

Tôi có GIT 2.4.0 và đang hoạt động tốt với tùy chọn này.

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