Tôi đã chuyển một vài công việc Jenkins cũ sang công việc mới bằng cách sử dụng pipeline feature để có thể tích hợp cấu hình Jenkins trong kho lưu trữ git. Nó hoạt động tốt nhưng tôi tự hỏi liệu có cách nào để giảm số lần thanh toán xảy ra trong khi xây dựng không.Đường ống Jenkins: có thể tránh nhiều lần thanh toán không?
Cài đặt
- Tôi có một công việc multibranch Jenkins có liên quan đến kho git của tôi
Tôi có một Jenkinsfile trong kho git của tôi
#!groovy node { stage 'Checkout' checkout scm // build project stage 'Build' ... }
Vấn đề
Khi tôi đẩy để Branche xa tôi BRANCH_1, công việc Jenkins multibranch được kích hoạt và sự hiểu biết của tôi là các bước sau đây xảy ra:
- công việc multibranch làm cho một
git fetch
cho việc lập chỉ mục chi nhánh và gây nên các công việc tương ứng với chi nhánh từ xa của tôi: BRANCH_1_job - BRANCH_1_job làm cho một
git checkout
để lấy Jenkinsfile của chi nhánh được kích hoạt - các Jenkinsfile được thực hiện và làm cho một
checkout scm
chính nó. Nếu tôi không làm điều đó, tôi không thể xây dựng dự án của mình vì không có nguồn.
Vì vậy, để xây dựng chi nhánh của mình, tôi kết thúc bằng một git fetch
và hai git checkout
.
Câu hỏi
- Tôi hiểu được quá trình một cách chính xác? Hay tôi đã bỏ lỡ điều gì đó?
- Có cách nào để giảm số lượng
git checkout
không? Khi tôi kiểm tra số official examples, tất cả đều thực hiện một bước kiểm tra như bước đầu tiên. Cá nhân tôi nghĩ rằng tôi không phải làm điều đó bởi vì công việc jenkins đã phải trả tiền để lấy Jenkinsfile (vì vậy nguồn của tôi phải ở đây bằng cách nào đó). - Bạn không nghĩ rằng các bản kiểm tra nhiều này có thể gây ra hiệu suất kém ngay khi repo git chứa số lượng lớn các lần chỉnh sửa?
Cảm ơn tất cả các bạn
Nếu bạn không đặt trên bằng cách sử dụng đường ống đa chi nhánh, bạn có thể tạo ra một (chi nhánh duy nhất) việc đường ống bình thường với 'Jenkinsfile' trong Jenkins mà thực hiện một kiểm tra đơn và sau đó tải xây dựng của bạn kịch bản thực tế từ kiểm tra ra kho lưu trữ thông qua 'tải 'ci/xây dựng-script-in-bạn-repo.gy''. Thật không may, bạn sẽ mất các công việc riêng biệt cho từng chi nhánh trong trường hợp đó. – Carsten
Tôi biết ý của bạn là gì nhưng tôi muốn: - giữ cấu hình ci của tôi trong kho lưu trữ của tôi chứ không phải trong cấu hình công việc jenkins của tôi - sử dụng các tính năng đa mẫu đẹp (như một công việc cho mỗi chi nhánh) chi nhánh đang thất bại) – Bastien