2012-08-12 45 views
7

tôi có các thiết lập sau đây hoạt động và làm việc:dự án xây dựng theo định kỳ chỉ nếu thay đổi được tìm thấy trong kho

  • Jenkins với Git và Sonar plugins
  • Một Jenkins công việc (project) mà các cuộc thăm dò Git mỗi phút
  • Một Jenkins công việc (project-sonar) mà các cuộc thăm dò git mỗi 24 giờ

Cả hai công việc chia sẻ kho git cùng.

Điều này cho phép tôi xây dựng dự án của mình cho từng cam kết và sau đó mỗi ngày, chỉ khi dự án đã thay đổi, hãy chạy phân tích Sonar.

Gần đây tôi đã thiết lập kho git để gửi thông báo tới Jenkins khi dự án đã thay đổi, theo số Push notifications from repository. Điều này xây dựng cả hai dự án ngay lập tức, nhưng tôi chỉ muốn công việc nhanh chóng (project) để xây dựng. Nếu tôi di chuyển các project-sonar để được xây dựng định kỳ, phân tích sonar sẽ được chạy ngay cả khi không có thay đổi mã, đó là lãng phí.

Làm thế nào tôi có thể giữ lại

  • ngay lập tức xây dựng cho project build
  • hàng ngày xây dựng cho cho project-sonar build

?

+0

tôi tò mò lý do bạn thay đổi công việc của bạn từ cuộc thăm dò SCM để đẩy thông báo là gì? – aleung

+0

@aleung thời gian phản hồi nhanh hơn cho các bản dựng –

Trả lời

1

Tôi đã giải quyết điều này bằng cách sử dụng phương pháp sau đây:

  1. Tất cả Jenkins dự án được đặt tên sau khi kho git của họ (tôi sử dụng gitolite)
  2. tôi đã kích hoạt chỉ kích hoạt được xây dựng từ xa cho các cơ sở xây dựng
  3. tôi đã thêm một cái móc post-receive trong gitolite mà làm điều gì đó như

    $CURL --silent --netrc --insecure --connect-timeout 2 "$GIT_REMOTE_TRIGGER_URL/$GL_REPO/build?token=$JENKINS_BUILD_TOKEN" > /dev/null

  4. Dự kiến ​​toàn bộ công việc sonar để thăm dò ý kiến ​​các SCM mỗi 24 giờ

3

Tôi đã triển khai một cái gì đó rất giống với những gì bạn đang xem bằng cách sử dụng plugin "Chạy điều kiện" cho jenkins. https://wiki.jenkins-ci.org/display/JENKINS/Run+Condition+Plugin

Tôi đã thực hiện công việc sonar theo dõi công việc bỏ phiếu/xây dựng/kiểm tra, với điều kiện để nó chỉ chạy mỗi ngày một lần.

+0

Cảm ơn con trỏ tới plugin. Bạn có thể chia sẻ một số chi tiết về cách bạn triển khai chạy một lần mỗi ngày điều kiện? –

+0

Rất tiếc, đã mất vài ngày để quay lại điều này. Khi xem xét, tôi phát hiện ra tôi đã không hoàn toàn chính xác về câu trả lời của tôi ở trên. Chúng tôi có một công việc được lên kế hoạch riêng để thực hiện công việc xây dựng một lần mỗi ngày và công việc âm thanh là một công việc tiếp theo. Plugin Run Condition được sử dụng để kiểm soát ngày trong tuần (chúng tôi không chạy Sonar vào cuối tuần). –

+0

Suy nghĩ về nó, bạn có thể thiết lập một công việc hàng ngày riêng biệt thăm dò ý kiến ​​cho những thay đổi kể từ lần chạy cuối cùng, và xây dựng và kiểm tra nếu có. Thực hiện công việc sonar một bước xây dựng trong plugin Run Condition bằng cách sử dụng điều kiện trạng thái xây dựng, và tôi nghĩ rằng cung cấp cho bạn khả năng kiểm soát mà bạn đang tìm kiếm. –

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