2016-06-06 25 views
11

Vì vậy, tôi đã sử dụng Jenkins trong một thời gian dài. Tôi đã thiết lập nhiều dự án với plugin Github Pull Request Builder để chạy thử nghiệm bất cứ khi nào ai đó mở yêu cầu kéo, và sau đó kích hoạt một số công việc khác (xây dựng, đẩy, triển khai, v.v.) bất cứ khi nào yêu cầu kéo thực sự được hợp nhất thành chính.Làm thế nào để thiết lập một yêu cầu kéo github xây dựng trong một Jenkinsfile?

Vì vậy, có cách nào để thiết lập điều này với một Jenkinsfile, hoặc các thư mục tổ chức, hoặc thỏa thuận xây dựng đa chỉnh sửa?

Trả lời

18

Plugin github-organization-folder kết hợp với plugin multi-branch plugin cung cấp chính xác tính năng tuyệt vời này: Nó quét toàn bộ tổ chức (tùy chọn giới hạn các mẫu nhất định trong tên đại lý/chi nhánh) cho Jenkinsfile và tự động thêm công việc. Điều này cũng xảy ra cho Pull Requests.

Khi PR đóng, nó sẽ tự động xóa công việc.

Để tránh việc thực thi mã tùy ý, thành viên tổ chức phải kích hoạt công việc xây dựng (giống như đối với plugin GPRB). Cụm từ có thể được định cấu hình trong cài đặt Jenkins System.
EDIT: Trong phần Nâng cao trong Jenkins, bạn sẽ tìm thấy các tùy chọn về loại PR bạn muốn tạo. Nếu bạn xây dựng ngã ba PRs, sau đó có afaik không có cách nào để ngăn chặn chạy mã mà không cần kiểm tra trước nó.


Một ví dụ, làm thế nào điều này có vẻ như:

PR on Github


PR in Jenkins

+0

Cảm ơn cho câu trả lời. Tôi chỉ nhận ra rằng các yêu cầu pull build được xây dựng trong plugin multi-branch- nó không được đề cập ở bất cứ đâu trong tài liệu :) Vẫn cần tìm ra cách làm một cái gì đó khác nhau cho pull request build, nhưng tôi nghĩ đó chỉ là lập trình. –

+6

Bạn có thể kiểm tra 'env.BRANCH_NAME.startsWith ('PR -')' nếu bạn muốn hành xử khác nhau trên các bản dựng PR. –

+4

hoặc 'env.CHANGE_ID! = Null' –

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