2012-01-20 23 views
5

Tôi có hai công việc Jenkins được gắn với một nô lệ Windows cụ thể được xây dựng liên tục. Chúng được thiết lập để thăm dò Git SCM với một biểu thức cron là * * * * * nhưng sẽ xây dựng mỗi phút ngay cả khi không có thay đổi trong repo Git. Trong nhật ký bỏ phiếu Git cho cả hai công việc, tôi thấy như sau:Jenkins liên tục xây dựng trên nô lệ Windows ngay cả khi không có thay đổi kho lưu trữ

Started on 20-Jan-2012 10:57:10 
Using strategy: Default 
[poll] Last Build : #4179 
[poll] Last Built Revision: Revision 581837483fc583126d8fde7760c88062d3aa2cfa (origin/HEAD, origin/master) 
Last build was not on tied node, forcing rebuild. 
Done. Took 8 ms 
Changes found 

Cụ thể dòng ghi là Last build was not on tied node, forcing rebuild. có vẻ đáng ngờ. Tôi có thể thấy một vài báo cáo về những điều tương tự khi Googling cụm từ này nhưng không có giải pháp.

Các phiên bản Windows khác dường như không gặp vấn đề gì vì vậy tôi không chắc chắn rằng đó hoàn toàn là vấn đề của Windows.

Có ai có bất kỳ ý tưởng nào có thể gây ra điều này hoặc những gì tôi có thể làm để giải quyết không?

+0

Có thể là nô lệ cụ thể có thời gian khác với máy chứa kho GIT không? Tôi đã nhìn thấy vấn đề như thế này xảy ra với một kho SVN do thực tế là các nô lệ và máy lưu trữ được hơi ra khỏi đồng bộ (khoảng 2 phút hoặc lâu hơn). Tôi không chắc chắn nếu GIT là dễ bị vấn đề out-of-sync nhưng nó có thể là giá trị kiểm tra. – Petrik

Trả lời

0

Bạn có chắc chắn rằng công việc đã được gắn với một nô lệ?

Là một giải pháp cho một vấn đề tìm kiếm tương tự với thông điệp "xây dựng ngoái là không phải trên nút buộc, buộc tái thiết", cân bằng công việc với một nút nô lệ đã được đề xuất: https://bugs.eclipse.org/bugs/show_bug.cgi?format=multiple&id=334069

+0

Có, nó chắc chắn gắn liền với một nô lệ –

0

Được rồi, tôi đã chỉ giải quyết này cho xây dựng máy chủ của chúng tôi (chạy Hudson) với sự giúp đỡ của: http://web.archiveorange.com/archive/v/OkDctYWEcMGCgTIDY2Av

Khi bạn buộc một công việc cho một cấu hình nô lệ, trong file cấu hình sau đây được viết

<assignedNode>hudson-slave1</assignedNode> 

Khi xây dựng xong, một tập tin được tạo ra

<job>/builds/<build-no>/build.xml. 

Tập tin này có

<builtOn>hudson-slave1</builtOn> 

tôi nhận thấy một điều kỳ quặc. Nếu bạn thấy nhãn tôi in ra phía trên nó nói "hudson-slave1" thuộc về nút "hudson-slave1". Kỳ lạ thay, nút "hudson-slave1" có hai nhãn "build2" và "hudson-slave2". Không có nhãn như "hudson-slave1" (xem hình ảnh đầu tiên). **

Trong trường hợp xây dựng của chúng tôi bị trói vào một nút "BUILDDEV3" trong đó có nhãn của nó là "chính-xây dựng".

Tôi đã thêm tên nút vào danh sách nhãn (bằng cách thay đổi danh sách nhãn thành "builder lớn BUILDDEV3") và ngay lập tức nó bắt đầu hoạt động.

Có vẻ như tên nút đang được so sánh với các nhãn để xác định xem bản dựng cuối cùng có nằm trên nút được gắn hay không.

Đây có lẽ là lỗi đã bị bỏ qua vì, tôi giả sử, nếu bạn liên kết với một nhãn, thì nó sẽ hoạt động như sau đó nhãn sẽ được so sánh với nhãn.

Vì vậy, tóm lại, thêm tên nút vào danh sách nhãn và nó sẽ hoạt động.

0

Tôi vừa gặp sự cố này với Hudson v2.2.1 (vâng, tôi biết phiên bản cũ của nó). Tôi không chắc chắn những gì kích hoạt các runaway xây dựng, như không có thay đổi cấu hình dường như phù hợp với sự bắt đầu của runaway. Tôi có, tuy nhiên tìm thấy một (bổ sung) làm việc xung quanh.

Trên trang cấu hình công việc, có tùy chọn (hộp kiểm) cho "Hạn chế nơi dự án này có thể chạy", với hai tùy chọn nút radio để chọn phương tiện hạn chế: "Nút và menu nhãn" hoặc "Các biểu thức Nút và Nhãn Nâng cao", một trong số đó phải được chọn.

Khi thứ hai trong những lựa chọn, "Nâng cao Node và Label biểu thức", được chọn, một trường văn bản dạng tự do xuất hiện cho phép bạn nhập vào một biểu thức logic kết hợp các điều khoản từ

  • bộ tên nút phụ ("BUILDDEV3" trong câu trả lời của @ Campey), union
  • tập hợp tất cả các giá trị nhãn phụ ("người xây dựng chính" trong câu trả lời của @ Campey).

Ví dụ: major-builders && !BUILDDEV3.

Khi người đầu tiên trong những lựa chọn, "Node và menu nhãn", được chọn, một danh sách lựa chọn xuất hiện cho phép bạn chọn một giá trị từ một danh sách có chứa các điều khoản từ:

  • tập các nô lệ tên nút, đoàn
  • danh sách của tất cả các giá trị nhãn nô lệ, đoàn
  • tập tất cả các biểu hiện theo quy định tại bất kỳ công việc từ cơ chế "Advanced Node và biểu Label".

Lưu ý rằng tập hợp các tên nút phụ được coi là nhãn phụ. @ Campey của đề nghị là không gây rối với cơ chế lựa chọn, nhưng để thêm một cách rõ ràng tên nút nô lệ vào danh sách các nhãn cho mỗi nô lệ. Điều này sẽ làm việc, nhưng có tác dụng phụ tiềm năng, nói, nếu bạn đổi tên một nút. Tôi đã không thử nó nhưng nó thậm chí có thể gây ra bản sao để hiển thị trong danh sách các điều khoản lựa chọn cho công cụ chọn. Tôi thích tránh chụp thông tin thừa.

Tác vụ xung quanh của tôi là không bao giờ chọn tên nút phụ của ngầm, nhưng chỉ sử dụng nhãn hoặc biểu thức chỉ chứa nhãn trong cơ chế chọn, bất kể bạn chọn cái nào. Điều này sẽ không bao giờ thừa. Ví dụ: để thể hiện ví dụ được đưa ra trước đó: major-builders && !BUILDDEV3, trong đó "nhà xây dựng chính" là nhãn và "BUILDDEV3" là tên nút, người ta phải thêm nhãn nút duy nhất vào nút "BUILDDEV3" như vậy là "NOTHERE", và sau đó sử dụng biểu thức, major-builders && !NOTHERE.

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