2009-03-14 31 views
8

Có một plugin buildbot sẽ thăm dò ý kiến ​​một kho lưu trữ git cho các cam kết mới, như hiện tại bao gồm changes.SVNPoller không?Có buildbot thăm dò ý kiến ​​một kho git cho các cam kết mới không?

Gần nhất tôi tìm thấy là git_buildbot.py, nhưng nó hoạt động như một móc hậu cam kết, vì vậy sẽ không hoạt động với thiết lập của tôi (sử dụng Github và buildbot trên máy mà cam kết của github không thể truy cập) - chỉ cần bỏ phiếu kho git sẽ hoạt động hoàn hảo.

Tôi hiện đang có một xây dựng chạy một lần một giờ, nhưng có không thực sự bất kỳ điểm nào trong việc điều hành các cuộc thử nghiệm trừ khi một cái gì đó đã thay đổi ..

Trả lời

9

Cập nhật: Những người trong nhóm tại dự án Buildbot đã biến GitPoller thành Nguồn thay đổi chính thức như phiên bản 0.8.2 và thực hiện một vài cải tiến cho bản gốc.


Công ty của chúng tôi ở trong tình huống tương tự mà máy móc của GitHub không thể đạt được. Tôi đã viết một nguồn thay đổi GitPoller có thể được sử dụng như SVNPoller.

Nó có thể được tìm thấy ở đây: http://github.com/wimba/buildbot/blob/master/buildbot/changes/gitpoller.py

và sử dụng như thế này:

from buildbot.changes.gitpoller import GitPoller 
c['change_source'] = GitPoller('[email protected]:foobaz/myrepo.git', 
           branch='great_new_feature') 

Nó sẽ tạo ra một repo địa phương để làm việc ra khỏi (vị trí cấu hình), và nó chỉ được thử nghiệm với git 1.7 nên số dặm của bạn có thể thay đổi.

Hy vọng rằng nó sẽ được kéo vào dự án Buildbot thích hợp tại một số điểm, nhưng nó đã làm việc cho chúng ta cho đến nay và hy vọng nó có thể được sử dụng cho người khác :)

1

Tôi đã không chơi với buildbot ở tất cả nhưng bạn không thể làm một git fetch và sau đó xem kết quả của git log master..origin/master? Nếu không có cam kết mới thì đầu ra sẽ trống (có, tất nhiên, một tấn các tùy chọn khác mà bạn có thể sử dụng trên git log). Nếu có các cam kết mới thì chỉ cần thực hiện git merge và bắt đầu chu kỳ xây dựng/thử nghiệm của bạn.

0

Tôi thích cách tiếp cận gitpoller.py nhưng đồng thời điểm tôi tìm thấy nó một chút hạn chế (ví dụ như không gửi sửa đổi, dự án đối số) để tìm thấy một giải pháp khác nhau:

Tôi có kho lưu trữ của riêng tôi nhân bản từ xa và git_buildbot.py được gọi bằng móc sau hợp nhất (như được mô tả trong git_buildbot.py). Tôi có một vòng lặp nhỏ ngủ và git kéo trong repo đó sẽ kích hoạt móc sau sáp nhập.

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