Jenkins - cách xây dựng một nhánh cụ thể


95

Điều này không đơn giản như chỉ xây dựng tham số hóa. Tôi đã có một quy trình xây dựng cụ thể sẽ xây dựng và triển khai bất cứ khi nào bất kỳ nhánh nào trong số này được đẩy lên GitHub:

nhập mô tả hình ảnh ở đây

Vì vậy, nếu tôi vừa đẩy developvà nó được tạo thành công, làm cách nào để kích hoạt một bản dựng thủ công và kéo nó feature/my-new-feature(mà không cần thực hiện a git push)? Tôi đã thử bật xây dựng tham số hóa, thêm một chuỗi mới được gọi là branch, sau đó thêm một chỉ định nhánh mới */$branch,. Sau đó tôi chạy một xây dựng và thiết lập branchđể feature/my-new-featurevà nó vẫn kéo từ develop.

Tôi đánh giá cao bất kỳ sự giúp đỡ nào!


Bạn đang nói về github webhook. điều này có thể giải quyết vấn đề của bạn. bạn có muốn kích hoạt điều này từ github không?
Abhijeet Kamble

1
Không, tích hợp GitHub đã hoạt động. Tôi cần biết cách xây dựng một nhánh cụ thể theo cách thủ công.
ffxsam

3
Tôi có cùng một vấn đề. Công việc được cấu hình để xây dựng các nhánh khác nhau và được kích hoạt bởi một git hook. Nhưng khi tôi muốn xây dựng một nhánh cụ thể theo cách thủ công (không có thay đổi mới trong GIT), tôi nhấp vào "Xây dựng ngay bây giờ" nhưng nó luôn xây dựng nhánh đã kiểm tra mới nhất. Cũng đã thử các thuộc tính xây dựng khác nhau.
Cornz

Nếu tham số của bạn có tên là branch, bạn chỉ cần chỉ định $branchtrong trường branch specifier.
Alexey,

1
@Alexey, nhưng sau đó trong quá trình xây dựng được khởi tạo tự động, điều này $branchsẽ dẫn đến một chuỗi trống, tôi cho là vậy.
Nakilon

Câu trả lời:


109

Giải pháp tốt nhất có thể là:

Thêm tham số chuỗi vào công việc hiện tại nhập mô tả hình ảnh ở đây

Sau đó, trong Source Code Managementphần cập nhật Branches to buildđể sử dụng tham số chuỗi bạn đã xác địnhnhập mô tả hình ảnh ở đây

Nếu bạn thấy một hộp kiểm được gắn nhãn Lightweight checkout, hãy đảm bảo rằng nó đã được bỏ chọn.

Cấu hình được chỉ ra trong hình ảnh sẽ yêu cầu công việc jenkins sử dụng masterlàm nhánh mặc định và đối với các bản dựng thủ công, nó sẽ yêu cầu bạn nhập chi tiết nhánh (FYI: theo mặc định nó được đặt thành master)nhập mô tả hình ảnh ở đây


4
Xây dựng tổng thể theo mặc định sẽ không cắt nó cho một bản dựng phát triển chung được cho là xây dựng tất cả các nhánh phát triển.
static_rtti

9
Chúa ơi, thật khốn nạn. Tại sao Jenkins không giữ Branches to buildphần đó với repo Git chết tiệt mà nó áp dụng? Thật là một PITA ngu ngốc khi phải làm điều này để chỉ định một nhánh để xây dựng.
Alex Zavatone

9
Dong này không hoạt động (đối với tôi). Tôi kết thúc với việc Jenkins cố gắng kiểm tra một nhánh git.exe fetch --tags --progress origin +refs/heads/${BRANCH}:refs/remotes/origin/${BRANCH} --prunerõ ràng là không hợp lệ.
Liam

1
điều này được ghi lại dưới dạng một lỗi trên Jenkins vì vậy thật khó để biết nó đã từng hoạt động như thế nào?
Liam

19
@Liam Như đã đề xuất trong phiếu lỗi, bạn cần bỏ chọn "Thanh toán nhẹ" để thực hiện việc này.
asmaier

10

Tôi không nghĩ rằng bạn có thể cả hai trong cùng một công việc jenkins, những gì bạn cần làm là định cấu hình một công việc jenkins mới sẽ có quyền truy cập vào github của bạn để truy xuất các nhánh và sau đó bạn có thể chọn cái nào để xây dựng theo cách thủ công.

Chỉ cần đánh dấu nó là một bản dựng được tham số hóa, chỉ định tên và một tham số được định cấu hình là git parameter

nhập mô tả hình ảnh ở đây

và bây giờ bạn có thể định cấu hình các tùy chọn git:

nhập mô tả hình ảnh ở đây


7
Tham số git đó là một plugin jenkins ?? Tôi không thấy tùy chọn để thêm loại prameter đó. Nếu nó là một plugin, bạn có thể chỉ vào nó trong câu trả lời không?
Leandro David

@LeandroDavid yes Git Parameter là một plugin cần được cài đặt sau nó, bạn sẽ thấy tùy chọn này trong Add Parameter.
gotosachin

9

Để kiểm tra chi nhánh thông qua tập lệnh Jenkins, hãy sử dụng:

stage('Checkout SCM') {
    git branch: 'branchName', credentialsId: 'your_credentials', url: "giturlrepo"
}

1
Tôi biết đây không phải là câu hỏi chính xác là gì, nhưng tôi đã tìm kiếm thông tin này và google tiếp tục đề xuất trang web này như một câu trả lời.
Igor L.

giống nhau ở đây anh bạn. Bạn có thể tìm ra câu trả lời cho câu trả lời chính xác không
Thinkingmonster

0

Đây là phần mở rộng của câu trả lời do Ranjith cung cấp

Tôi khuyên bạn nên chọn một bản dựng tham số lựa chọn và chỉ định các nhánh mà bạn muốn xây dựng. Tham số lựa chọn chủ động

Và sau đó, bạn có thể chỉ định các nhánh để xây dựng. Chi nhánh để xây dựng

Bây giờ, khi bạn xây dựng dự án của mình, bạn sẽ được cung cấp "Xây dựng với các tham số, nơi bạn có thể chọn nhánh để xây dựng"

Bạn cũng có thể viết một kịch bản thú vị để tìm nạp tất cả các nhánh của bạn trong tham số lựa chọn hoạt động.


Xin hãy giải thích. TeamCity làm điều này theo mặc định, và Jenkins thậm chí không thể buộc dây giày của chính mình !!!
C Johnson

0

nhập mô tả hình ảnh ở đây

Sẽ có một tùy chọn trong cấu hình trong Trình kích hoạt xây dựng

Kiểm tra các Chi nhánh GitHub

Một hook sẽ được tạo và sau đó bạn có thể tạo bất kỳ nhánh nào bạn thích từ Jenkins khi bạn chọn Github Bra Branch nhập mô tả hình ảnh ở đây

Hy vọng nó giúp :)


Tôi đang cố gắng sử dụng plugin này với thiết lập này, nhưng tôi không thể tìm ra cách để bắt đầu công việc. Có cách nào khác để kiểm tra xem các sự kiện có đến chính xác từ gh không?
Vito De Tullio

Bạn có nhận được Run Branch Triggertùy chọn không, nó sẽ quét git repo cho tất cả các nhánh có sẵn ... Ngoài ra, chỉ cần nhìn vào Nhật ký jenkins -> trong Quản lý Jenkins ... để xem có lỗi xảy ra hay không
rohit thomas

1
Vui lòng giải thích, mô tả của bạn quá nhỏ và ngắn.
C Johnson
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.