Chúng tôi có một công việc Jenkins xây dựng mọi chi nhánh ngoại trừ tổng thể khi có các cam kết mới. Hành vi này có thể được cấu hình thông qua 'lựa chọn chiến lược: nghịch đảo' của git plugin để nó lắng nghe mọi chi nhánh ngoại trừ một nhánh cụ thể.Làm thế nào để lấy tên nhánh git được xây dựng bởi Jenkins khi sử dụng chiến lược lựa chọn nhánh nghịch đảo?
Chức năng này rất độc đáo. Nhưng vấn đề là biến môi trường GIT_BRANCH luôn đề cập đến nhánh bị loại trừ ('origin/master' trong trường hợp của chúng ta). Làm thế nào để truy vấn nhánh thực tế được xây dựng bởi Jenkins?
Hiện tại tôi đang sử dụng giải pháp thay thế mà tôi grep nó từ tạo ra changelog.xml. Nhưng đôi khi, changelog.xml trống khi Jenkins chuyển đổi giữa các nhánh khác nhau và tôi không thể tìm thấy thông tin này. Cách lấy/truy vấn chính xác từ Jenkins nhánh thực sự được xây dựng là gì?
Cảm ơn Charles. Điều đó làm việc trong một workarea git bình thường nhưng không phải trong một không gian làm việc jenkins, nơi lệnh trả về không có gì. Chạy 'git branch' trong không gian làm việc jenkins cho '* (không có nhánh)'. Có lẽ nhánh được chọn phải được truy vấn từ Jenkins theo một cách nào đó vì nó có vẻ như thực hiện thanh toán dựa trên cam kết-id trong nhánh đã chọn. – harish
Có, Jenkins hoạt động trong HEAD tách rời. xem chỉnh sửa của tôi và câu trả lời được liên kết. Tôi chắc rằng một trong các lệnh được liên kết trong nó sẽ hoạt động. – CharlesB
Lệnh này hoạt động trong CMD, nhưng không phải trong Jenkins của tôi, tại sao? C: \ Tools \ Jenkins \ jobs \ DevOps \ jobs \ Test-GitHub \ workspace> git --version git phiên bản 2.7.0.windows.1 C: \ Tools \ Jenkins \ jobs \ DevOps \ jobs \ Test-GitHub \ không gian làm việc> git symbolic-ref -q --short HEAD C: \ Tools \ Jenkins \ jobs \ DevOps \ jobs \ Test-GitHub \ workspace > thoát 1 Xây dựng bước 'Thực thi lệnh batch của Windows' được đánh dấu là không thành công Hoàn thành: FAILURE –