2011-10-21 21 views
8

Nhóm mà tôi làm việc đã chuẩn hóa trên Jenkins cho các bản dựng Tích hợp liên tục. Mã check-in kích hoạt một xây dựng tiêu chuẩn, Cobertura phân tích và xuất bản cho một repo Artifactory SNAPSHOT. Tôi vừa hoàn thành việc thêm một mục tiêu mới vào tệp xây dựng chính sẽ khởi động một chạy Sonar nhưng tôi không muốn chạy trên tất cả các lần đăng ký.Lập lịch biểu mục tiêu xây dựng cụ thể trong Jenkins?

Có cách nào lên lịch xây dựng hàng đêm của một mục tiêu xây dựng cụ thể trong Jenkins không? Jenkins rõ ràng tạo điều kiện cho việc xây dựng theo lịch trình nhưng nó sẽ chạy thường xuyên xây dựng của dự án mỗi lần. Tôi muốn có thể lên lịch cho mục tiêu xây dựng Sonar để chạy hàng đêm.

Tôi có thể, tất nhiên, tạo một dự án Jenkins riêng biệt chỉ để chạy mục tiêu Sonar theo lịch biểu nhưng tôi đang cố gắng tránh điều đó nếu có thể. Máy chủ Jenkins của chúng tôi đã có hàng trăm bản dựng trên đó; tăng gấp đôi vì lợi ích của việc lên kế hoạch xây dựng hàng đêm không phải là rất mong muốn. Tôi tìm kiếm một trình cắm thêm Jenkins có thể tạo điều kiện thuận lợi cho việc này nhưng tôi không thể tìm thấy bất cứ thứ gì. Bất kỳ đề xuất?

Trả lời

7

Dưới đây là một cách để làm điều đó, nếu bạn là ok với kích hoạt việc xây dựng sử dụng cron hoặc một số công cụ lập kế hoạch khác:

  • Hãy xây dựng parameterized, và sử dụng một tham số trong xây dựng tập tin của bạn để quyết định xem Sonar xây dựng mục tiêu nên chạy hay không.
  • Kích hoạt xây dựng từ xa bằng HTTP POST: nhập các giá trị tham số dưới dạng biểu mẫu tới http://[jenkins-host]/jobs/[jobname]/buildWithParameters. Tùy thuộc vào phiên bản và cấu hình Jenkins của bạn, bạn có thể cần phải thêm một số Authentication Token và bao gồm điều này trong url của mình.
  • Xác thực POST của bạn bằng tên người dùng và mật khẩu.

    wget --auth-no-challenge --http-user=USERNAME --http-password=PASSWORD "https://[jenkins-host]/job/[jobname]/buildWithParameters?token=<token defined in job configuration>&<param>=<value>&<param2>=<value2>"

+0

+1 cũng không thấy cách nào tốt hơn. Tôi cũng sẽ quan tâm đến một giải pháp tốt hơn. –

3

Tôi cũng đang tìm kiếm một giải pháp cho việc này. Giải pháp hiện tại của tôi trong tâm trí của tôi là tạo 2 trình kích hoạt trong bản dựng thông thường, một trong số đó là bản dựng hàng đêm, một cái khác là Polling SCM

Cấu hình plugin sonar, nó có tùy chọn bỏ qua các bản dựng được kích hoạt bởi thay đổi SCM . Do đó, chỉ xây dựng hàng đêm sẽ bắt đầu một phân tích sonar.

Tôi đã không có cơ hội thử nghiệm ngay bây giờ, nhưng tôi cho rằng điều này sẽ hiệu quả.

Cập nhật ngày 19/12/2011 Giải pháp trên không có tác dụng nếu phân tích sonar được gọi là bước xây dựng độc lập. Để thực hiện các phân tích chạy sonar có điều kiện, bạn có thể sử dụng 2 plugin sau đây:

  1. Conditional BuildStep Plugin - điều này cho phép phân tích sonar được chạy có điều kiện
  2. Jenkins Môi trường Injector Plugin - điều này cho phép bạn bơm các biến để chỉ ra cách xây dựng được kích hoạt.
Các vấn đề liên quan