2014-09-10 20 views
17

Tôi đang làm việc với Jenkins CI và đang cố gắng cấu hình đúng công việc của mình để sử dụng git.Jenkins Git Plugin không kéo những thay đổi mới nhất trước khi tạo công việc

Tôi có plugin git được cài đặt và định cấu hình cho một trong các công việc của mình. Khi tôi tạo công việc, tôi hy vọng nó sẽ kéo các thay đổi mới nhất cho chi nhánh mà tôi chỉ định và sau đó tiếp tục với phần còn lại của quá trình xây dựng (ví dụ: kiểm tra đơn vị, v.v.).

Khi tôi nhìn vào giao diện điều khiển đầu ra, tôi thấy

> git fetch --tags --progress ssh://[email protected]/Util +refs/heads/*:refs/remotes/origin/* 
> git rev-parse origin/some_branch^{commit} 
Checking out Revision <latest_SHA1> (origin/some_branch) 
> git config core.sparsecheckout 
> git checkout -f <latest_SHA1> 
> git rev-list <latest_SHA1> 

Tôi thấy rằng các plugin lấy về và kiểm tra ra đúng cam kết băm, nhưng khi kiểm tra chạy nó có vẻ như dù repo chưa được cập nhật ở tất cả. Nếu tôi đi vào kho lưu trữ trong Jenkins, tôi thấy có những thay đổi mới nhất chưa bao giờ được kéo.

Không được kéo trước khi thử xây dựng?

Tôi có git 1.8.5 được cài đặt trên máy Jenkins của tôi, đây là phiên bản được khuyến nghị. https://wiki.jenkins-ci.org/display/JENKINS/Git+Plugin

Sau khi kiểm tra các câu hỏi âm thanh tương tự khác trên SO, câu trả lời của họ không hữu ích cho sự cố của tôi.

Trả lời

5

Tôi tin rằng Jenkins kéo các thay đổi và xây dựng trong thư mục tmp riêng của nó. Vì vậy, thư mục kho lưu trữ của bạn không được cập nhật mặc dù Jenkins đang xây dựng đúng mã mới trong hộp cát riêng của nó.

Giải pháp của tôi để này đã được để thêm một "git pull" bước trong quá trình xây dựng của tôi như vậy:

Khi mới cam kết được gửi đến repo GitHub của tôi:
1. Xây dựng dự án của tôi

Nếu thành công, thực hiện như sau sau xây dựng bước sau:
1. thực hiện Shell:

cd /your/repo/directory/ 
git pull 

bạn rõ ràng là có thể thay đổi "git pull" lệnh để làm bất cứ điều gì bạn ne ed để làm nếu một 'kéo' không làm việc cho bạn.

+0

Cảm ơn bạn đã giúp tôi đi đúng hướng. Những gì đã kết thúc làm việc cho tôi là: git pull -s đệ quy -X của họ nguồn gốc myBranch – gorbysbm

16

Liên quan tôi để kịch bản mà không gian làm việc đã không nhận được làm sạch-up, sử dụng:

  • Source Code Management -> Hành vi bổ sung -> sạch sau khi thanh toán enter image description here

  • Tùy chọn khác là sử dụng Workspace Cleanup Plugin

+0

Đây thực sự là cách chính xác để làm điều đó. Vì vậy, tôi tự hỏi tại sao câu trả lời này không phải là lựa chọn. – maximi

+1

Tôi không hiểu tại sao đây không phải là hành vi mặc định ... – ambe5960

+0

Tùy chọn này có sẵn trên 2.6. – Abhijeet

0

Tôi biết câu hỏi là cũ, nhưng có một cách khác để làm điều này.Trong xây dựng Môi trường phần, chọn "workspace Xóa trước khi xây dựng bắt đầu"

Xem ảnh chụp màn hình dưới đây,

enter image description here

Điều này thực sự sẽ làm sạch không gian làm việc mỗi lần và do đó bạn sẽ nhận được mã cập nhật.

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