2016-09-29 34 views
15

Tôi đã thiết lập thành công trình kích hoạt webhook trong bitbucket cho dự án tự do Jenkins, cho mục đích thử nghiệm.Cách kích hoạt đường ống jenkins từ kho chứa bitbucket

Thật không may dự án Jenkins của tôi đang sử dụng định dạng Đường ống, và tôi không thể nhận Bitbucket kích hoạt loại dự án đó; vấn đề có vẻ là rằng có không có dự án Jenkins đăng ký để kéo từ repo rằng webhook Bitbucket đang đến từ đâu, và Jenkins trả lời với:

Error: Jenkins response: No git jobs using repository: ssh://[email protected]:7999/xxx/testing-jenkins.git and branches: master No Git consumers using SCM API plugin for: ssh://[email protected]:7999/xxx/testing-jenkins.git 

Dự án đường ống được thiết lập trong một cách mà các Jenkinsfile là được tìm thấy trong kho lưu trữ đã cho (ssh://[email protected]:7999/xxx/testing-jenkins.git), bằng cách sử dụng tùy chọn "Đường dẫn tập lệnh từ SCM".

Vì vậy, có thực sự là một loại "git consumer" cho Pipeline, nhưng điều này dường như không được tính đến bởi Jenkins, có lẽ vì đây không phải là nguồn dự án thực, mà là nguồn đường ống.

Có bất kỳ ví dụ nào về tích hợp các dự án đường ống Bitbucket và Jenkins không? Tôi đã không thể tìm thấy bất kỳ.

+0

Rất tiếc, tôi đã cố gắng tìm giải pháp cho vấn đề này, tôi sẽ tiếp tục tìm kiếm và cập nhật điều này nếu tôi tìm thấy giải pháp hoặc ví dụ. – Signus

+0

bất kỳ tiến trình nào? Tôi không thể làm cho nó cho đến nay. – Cross

+0

https://issues.jenkins-ci.org/browse/JENKINS-38447 đây là tiến trình. –

Trả lời

8

Tôi đã vật lộn với cùng một vấn đề. Sau đây là những điểm chính tôi theo sau.

Trong công việc đường ống dẫn Jenkins,

  1. Dưới Xây dựng Triggers, kiểm tra 'Kích hoạt được xây dựng từ xa (ví dụ: từ kịch bản) và điền vào 'Xác thực Mã' với một số dấu hiệu ngẫu nhiên và độc đáo.

Trong kho BitBucket,

  1. Đến Cài đặt> Dịch vụ

  2. Chọn 'Jenkins' từ trình đơn thả xuống và 'Thêm dịch vụ'.

    • Kiểm tra 'CSRF bật'

    • Endpoint: http://username:[email protected]/

      Bạn có thể tìm thấy tên đăng nhập và apitoken tại Jenkins nhà> dân Chọn người sử dụng và bấm vào cấu hình. Trong 'Mã thông báo API', nhấp vào nút 'Hiển thị mã thông báo API' và bạn thấy tên người dùng và lời nói

    • Tên mô-đun: Đây là tùy chọn. Nó có thể là bất kỳ tập tin hoặc thư mục cụ thể mà sẽ được theo dõi.

    • Tên dự án: Tên dự án trong Jenkins.

      Nếu công việc là trong một số cấu trúc thư mục, nói rằng tôi có 'MyTestFolder/MyTestPipelineJob', Tên dự án được đề cập là 'MyTestFolder/job/MyTestPipelineJob'

    • : 'Xác thực Mã' tạo ra trong Jenkins.

Bạn đã sẵn sàng để đi !!

Tôi đã gọi http://felixleong.com/blog/2012/02/hooking-bitbucket-up-with-jenkins/ và một số bản năng của tôi. :)

+7

Điều này không còn được hỗ trợ bởi bitbucket https://confluence.atlassian.com/bitbucket/jenkins-service-management-251724180.html –

+1

được xác nhận ở trên. – Cross

11

Nếu bạn đang tìm kiếm đường ống Bitbucket và Jenkins đầy đủ, tôi khuyên bạn nên sử dụng Bitbucket Branch Source Plugin. Plugin sẽ khám phá tất cả các Branches và Pull Requests và xây dựng tất cả những người có một JenkinsFile trong thư mục gốc của repo.

Bạn cũng có thể sử dụng tạo một dự án như Bitbucket Team, những người sẽ quét tất cả các repo của tổ chức của bạn: enter image description here

Xem chính thức doc của CloudBees

1

Tôi có vấn đề này như vậy. Cách giải quyết của tôi chỉ là tạo một dự án tự do mà có thể được kích hoạt bởi WebHook và có Đường ống được kích hoạt bởi hoàn thành của dự án đó.

Trong lúc này, đây là lỗi Jenkins bạn có thể xem cho một sửa chữa: https://issues.jenkins-ci.org/browse/JENKINS-38447

1

giờ Spend tìm ra cách để làm điều này trong 2017,10

  1. Giống như @JPLemelin mô tả, mới một Jenkins mục sử dụng Nhóm/dự án Bitbucket
  2. chuyển đến tài liệu: https://support.cloudbees.com/hc/en-us/articles/115000051132-How-to-Trigger-Multibranch-Jobs-from-BitBucket-Cloud-, cài đặt plugin: Plugin Nguồn chi nhánh BitBucket.
  3. đi đến Bitbucket, và thêm webhook: $ {bạn-Jenkins-url}/bitbucket-scmsource-móc/thông báo

sau 3 bước, cuối cùng tôi làm cho đường ống công việc chạy sau mới cam kết vào bitbucket

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