2013-11-01 16 views
8

Có thể hủy hoặc bỏ qua một công việc trong Jenkins do các mẫu thông báo cam kết đặc biệt không? Tôi nghĩ tùy chọn "Đã loại trừ Cam kết nhận xét" trong cấu hình công việc thực hiện việc này cho tôi ra khỏi hộp, như đã đề cập here. Nhưng không có vấn đề mà biểu thức thường xuyên tôi viết trong lĩnh vực này, xây dựng được thực hiện tuy nhiên.Jenkins: tránh xây dựng do thư cam kết

Ví dụ: Tôi chỉ muốn thực hiện công việc xây dựng nếu thông báo cam kết bao gồm cụm từ "giải phóng". Vì vậy, tôi viết biểu thức chính quy [^ (?: release)] trong trường Nhận xét cam kết bị loại trừ. Tôi nghĩ nếu tôi cam kết sửa đổi với, ví dụ "kiểm tra cam kết" công việc xây dựng không thực hiện, phải không? Đây có phải là cách phù hợp để thực hiện khi không sử dụng móc hậu cam kết không?

+0

Bạn đã thử các biểu thức đơn giản chưa? Hãy thử để có được bất kỳ trận đấu ở tất cả mà loại trừ không có vấn đề làm thế nào đơn giản. – hofan41

Trả lời

4

Plugin Jenkins Git cho bạn thấy biến môi trường GIT_COMMIT, tất nhiên, chứa hàm băm cam kết git hiện tại. Sử dụng [Jenkins Bước Conditional] và xây dựng một bước mà thực hiện shell bash sau:

echo "===========================" 

if [ "git show $GIT_COMMIT | grep "your-pattern-here" == false ] ; then 
     echo "pattern failed"; 
     exit 1 
else 
     echo "ok" 
fi 

echo "===========================" 

Và đánh dấu rằng nếu vỏ thất bại, thất bại việc xây dựng.

+1

Tôi nghĩ rằng mã ở trên là gần, nhưng không hoàn toàn đúng. Đây là những gì làm việc cho tôi ... 'mã' nếu [[$ (git hiển thị $ GIT_COMMIT | grep" [chuỗi bỏ qua commit] "| wc -m) -ne 0]]; sau đó echo "bỏ qua cam kết này" thoát 0 else echo "ok to build" fi 'code' – adampasz

3

trễ trả lời nhưng có thể giúp một số một trong tương lai, Có một plugin để bỏ qua xây dựng tùy thuộc vào git commit thư, chỉ cần bao gồm một [ci-skip] trong phạm junkin thông báo sẽ bỏ qua việc xây dựng

jenkins-ci-skip-plugin

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