2015-06-01 22 views
28

Jenkins đang chạy trên máy chủ cục bộ. Tôi có kho lưu trữ của tôi trong GitHub. Tôi có tùy chọn 'Xây dựng khi thay đổi được đẩy lên GitHub' được chọn.Jenkins-Build khi thay đổi được đẩy sang tùy chọn GitHub không hoạt động

Khi tôi nhấp vào 'Tạo ngay bây giờ', xây dựng được thực hiện thành công, không có vấn đề ở đó. Nhưng khi đang cam kết mã vào kho lưu trữ của tôi, tự động xây dựng không xảy ra. Tôi có thể truy cập GitHub từ hệ thống của mình vì kho lưu trữ là công khai và tôi tin rằng ngay cả Jenkins cũng có thể phát hiện ra nó. Tôi biết có một lựa chọn bỏ phiếu nhưng tôi muốn Jenkins xây dựng khi thay đổi được phát hiện trong kho lưu trữ (vì đây là những gì chúng tôi đã cố gắng để đạt được).

Cấu hình:

Jenkins 1,615

Git Plugin 2.3.5

Git Khách hàng Plugin 1.17.1

------- ———————————————————— ----------------

EDIT: "xây dựng khi có thay đổi được đẩy lên GitHub" tùy chọn đã được đổi tên thành "GitHub móc kích hoạt cho GITScm bỏ phiếu "trong phiên bản mới nhất của plugin GitHub. (nhờ phản hồi của @ smrubin.)

+0

Làm cách nào để giải quyết vấn đề này với đại dương xanh? – technocrat

Trả lời

62

Tôi nghi ngờ bạn đã bỏ lỡ số webhook url.

Bên cạnh việc kiểm tra tùy chọn Build when a change is pushed to GitHub, bạn cũng nên thêm url webhook vào kho Github của bạn để có được những Auto kích hoạt cơ chế làm việc và đây là cách:

Đến kho Github của bạn:

Cài đặt -> Webhooks & Dịch vụ -> Dịch vụ -> Add Dịch vụ -> Chọn "Jenkins (GitHub plugin)"

Sau đó, điền thông tin vào Jenkins hook url với Jenkins của bạn url như thế này: http://your_jenkins_url/github-webhook/ enter image description here


Và, RẤT QUAN TRỌNG, kể từ khi bạn đang cài đặt máy chủ Jenkins của bạn trong localhost của bạn, hãy lưu ý rằng bạn shouldn' t điền vào url móc trên Jenkins như http://localhost:8080/github-webhook/ vì Github không thể nhận dạng localhost hoặc 127.0.0.1 hoặc 192.168.*.*.

Hoặc bạn nên sử dụng tên DNS có thể truy cập bên ngoài hoặc địa chỉ IP, có thể được Github nhận dạng.

+0

Câu trả lời này đã đến như một tia hy vọng :) Tôi hiểu rằng tôi cần phải đi đến GitHub và thêm dịch vụ bằng cách cung cấp URL móc Jenkins. Tôi đang bối rối những gì này? Làm thế nào để tôi có được/cấu hình giống nhau? –

+0

Theo GitHub WebHook (Cấu hình toàn cầu của Jenkins), tôi tìm thấy 'http: // localhost: 8080/github-webhook /' và tôi tin rằng đó là những gì bạn đang đề cập đến. Tôi cần phải tìm ra cách để loại bỏ localhost này –

+0

@AnujBalan: bạn có thể tìm ra để loại bỏ localhost không? – inquisitive

1

Plugin GitHub (https://wiki.jenkins-ci.org/display/JENKINS/GitHub+Plugin) được đề cập hai cách: chế độ thủ công và chế độ tự động. mainframer đưa ra câu trả lời cho chế độ thủ công. Hôm nay tôi tìm thấy một cái gì đó mới.Việc thêm mainframer vào dịch vụ không cho phép tôi thêm nhiều cá thể của Jenkins, vì vậy tôi thêm những người khác thêm Webhook như hình dưới đây. Nó cũng hoạt động tốt.

Tôi muốn bao gồm ảnh ở đây nhưng id của tôi không có quyền làm như vậy.

2

Thực tế nếu bạn thực hiện cài đặt webhook từ Jenkins -> Github plugin configuration (đã đề cập ở trên), bạn sẽ vẫn thấy các webhook được tạo trong github. Vì vậy, trên hai phương pháp tiếp cận về cơ bản làm điều tương tự.

Cá nhân tôi thích nó để tạo webhook từ Github, bởi vì bằng cách này bạn không phải chia sẻ hoặc lưu trữ thông tin người dùng github trong jenkins.

bước:

  1. Đăng nhập vào Github (với quản trị)

  2. Đến kho bạn muốn treo với Jenkins

  3. Bấm vào tab cài đặt -> webhooks & dịch vụ
  4. Nhấp vào Thêm Webhook.
  5. Nhập url tải trọng: như: http: //: 8080/github-webhook/
  6. Chọn kiểu nội dung như json.
  7. bạn đã hoàn tất.

Bây giờ bạn thực hiện các thay đổi và cam kết, bạn sẽ thấy jenkins xây dựng kích hoạt tự động. Đừng quên thực hiện các thiết lập trong các công việc jenkins để bắt đầu xây dựng khi mã push trong github.

25

Tôi đã gặp vấn đề tương tự và đã giải quyết vấn đề. Vấn đề là URL phải kết thúc bằng một số /. Ý nghĩa:

http://<jenkinsurl>:8080/github-webhook/ đã hoạt động.

http://<jenkinsurl>:8080/github-webhook không. (Chú ý số thiếu / ở cuối.)

+2

Cảm ơn rất nhiều! Đây là một điều rất khó để quan sát vấn đề! –

+2

Chà, cố định nó cho tôi quá ... nghĩ rằng tôi đã phát điên –

+2

Điều này làm việc hoàn hảo, cảm ơn! – marcbest

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