2013-03-11 37 views
30

Chúng tôi có rất nhiều nhà phát triển tạo các chi nhánh tính năng mà tôi muốn xây dựng. Hàng đêm, chúng tôi chạy một công cụ chất lượng mã cần chạy trên mọi nhánh. Tôi cũng sẽ không thích cấu hình tĩnh vì số lượng các nhánh thay đổi vài tuần một lần.Hudson/Jenkins Git xây dựng tất cả các chi nhánh

Trả lời

35

Trong cấu hình Git có trường 'Trình chỉ định chi tiết (để trống mặc định):' nếu bạn đặt ở đó ** nó sẽ tạo tất cả các nhánh từ tất cả điều khiển từ xa.

rằng bạn có thể sử dụng biến môi trường $ {GIT_BRANCH} ví dụ: để đặt tên cho tòa nhà bằng cách sử dụng https://wiki.jenkins-ci.org/display/JENKINS/Build+Name+Setter+Plugin hoặc cho các mục đích khác

+0

này sẽ xây dựng tất cả các chi nhánh khi họ cam kết. Tuy nhiên, tôi muốn xây dựng tất cả các chi nhánh tại một thời điểm cụ thể. – babsher

+0

Hmm vì vậy bạn muốn xây dựng chi nhánh ... không có thay đổi gì? Đây không phải là một điều rất điển hình để làm, vì chúng ta nên làm cho cùng một mã làm việc giống nhau vào ngày hôm sau. Bạn có thể chọn thành công "Xóa sạch vùng làm việc trước khi tạo". Jenkins sẽ không theo dõi quá trình xây dựng trước đó, có lẽ nó sẽ cố gắng xây dựng tất cả các nhánh, giống như nó làm cho một công việc mới. –

+10

Ngay cả khi không có thay đổi mã, việc xây dựng cùng một chi nhánh mỗi ngày thường sẽ bắt lỗi liên quan đến thời gian - ví dụ: khi chúng biểu hiện vào ngày đầu tiên của mỗi tháng, hoặc bất cứ khi nào mặt trăng đang rên rỉ. – mkirk

3

Tôi đã giải quyết vấn đề tương tự. Cụ thể, tạo một tệp zip của tất cả các nhánh và cung cấp các tệp đó làm các tạo tác được sử dụng trong các công việc kiểm tra khác nhau.

Trong "Chi nhánh để xây dựng", đặt "**"

Sau đó, Execute shell:

while read -ra ITEM; do 
    for i in "${ITEM[@]}"; do 
    git checkout $i 
    <do your stuff> 
    done 
done <<< $(git branch -r | grep -v "HEAD ->" | xargs -L 1 | cut -d'/' -f2) 

này đọc danh sách các ngành, Thanh toán từng người riêng biệt và cho phép để làm công cụ trong mỗi người trong số họ. Lệnh < < < chuyển đổi sản lượng này:

origin/HEAD -> origin/master 
    origin/branch1 
    origin/master 
    origin/secondbranch 

vào danh sách có thể sử dụng thanh toán:

branch1 
master 
secondbranch 
+0

tôi đã cho bạn +1 cho điều này: git branch -r | grep -v "HEAD ->" | xargs -L 1 | cắt -d '/' -f2. –

1

Cũ câu hỏi nhưng câu trả lời phần nào phù hợp hơn. Đa chi nhánh cắm bên dưới cho phép bạn tạo ra một loại mục xây dựng mà người hâm mộ ra tiểu dự án với các ngành, đồng bộ cấu hình tự động từ cấp cao nhất đến tiểu dự án

https://wiki.jenkins-ci.org/display/JENKINS/Multi-Branch+Project+Plugin

Đối với một cách tiếp cận hơi tham gia nhiều hơn, hạt giống Plugin cung cấp cho bạn rất nhiều tính linh hoạt xác định phụ việc

https://github.com/jenkinsci/seed-plugin/wiki

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