Lưu trữ các hiện vật trong Jenkins


132

Ai đó có thể vui lòng giải thích cho tôi ý tưởng về đồ tạo tác trong quá trình xây dựng không?

Tôi có thư mục không gian làm việc nơi tôi kiểm tra mã để biên dịch và chạy các tập lệnh ant của mình, v.v ... Cuối cùng, trong trường hợp của tôi, tôi nhận được một tệp jar đã sẵn sàng để cài đặt. Đó có được coi là cổ vật không?

Tôi nên nói với tập lệnh xây dựng của mình để đặt tệp jar ở đâu? Trong thư mục không gian làm việc? Tệp jar của tôi có được một tên tệp duy nhất tùy thuộc vào các biến như thế BUILD_ID, và làm thế nào tôi có thể nói với Jenkins nên chọn tệp jar nào?

EDIT: Được rồi, vì vậy tôi đã thử làm một cái gì đó như thế này:

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

Đường dẫn chưa tồn tại trong không gian làm việc của tôi, bởi vì tập lệnh xây dựng được cho là tạo ra nó, và tất nhiên, .jar.propertiescác tệp không có ở đó vì chúng chưa được tạo. Tại sao nó lại cho tôi một lỗi sau đó? Có vẻ như tôi đang thiếu một cái gì đó.

Ngoài ra, Jenkins có xóa các tạo phẩm sau mỗi bản dựng (không phải các tạo tác được lưu trữ không, tôi biết tôi có thể bảo nó xóa chúng không? Nếu không nó sẽ làm tắc nghẽn ổ cứng khá nhanh.


12
Lỗi bạn gặp phải rất có thể không phải là vấn đề - nếu quá trình xây dựng thành công, nó sẽ được tạo. Lưu và thử điều này, có một vài bản dựng bị hỏng trong khi thiết lập đường ống là hoàn toàn bình thường. :)
Anders Lindahl

3
Đừng sợ cảnh báo, nếu tạo tác được tạo sau khi xây dựng, nó sẽ được lưu trữ bởi cấu hình của bạn (mặc dù có cảnh báo trong trang cấu hình).
Huang F. Lei

Câu trả lời:


68

Sự hiểu biết của bạn là chính xác, một tạo tác theo nghĩa Jenkins là kết quả của một bản dựng - đầu ra dự định của quá trình xây dựng.

Một quy ước chung là đưa kết quả của một bản dựng vào build, targethoặcbin thư mục.

Trình lưu trữ Jenkins có thể sử dụng globs ( target/*.jar) để dễ dàng chọn đúng tệp ngay cả khi bạn có một tên duy nhất cho mỗi bản dựng.


@Andres cũng xin cảm ơn, jenkins có xóa các cổ vật sau mỗi bản dựng không (không phải là các tạo tác được lưu trữ, tôi biết tôi có thể bảo nó xóa bỏ chúng) không? hoặc tôi chịu trách nhiệm làm điều đó myslef?
Michael

6
@michael: Bạn phải tự làm sạch không gian làm việc, cách tốt nhất là xóa ít nhất thư mục đích trước mỗi bản dựng để đảm bảo bạn không kết thúc với kết quả của bản dựng trước đó.
Anders Lindahl

@Michael Bạn có thể thêm bước xây dựng 'sạch'. Ví dụ với Maven -sh 'mvn clean package'
Snowcrash

@AndersLindahl - "quy ước chung là đưa kết quả của bản dựng vào thư mục bản dựng, mục tiêu hoặc bin." Bạn đang đề cập đến một thư mục bin được chia sẻ bởi tất cả các dự án? Làm thế nào để làm điều đó? Đây có phải là một hành động xây dựng sau?
dùng3240688

@ user3240688 Không, tôi đang đề cập đến các thư mục mục tiêu theo dự án. Nếu bạn muốn các tạo phẩm từ một số công việc vào một thư mục dùng chung, bạn sẽ phải xuất bản các tạo phẩm bằng cách sử dụng một trong các plugin "Xuất bản trên $ PROTOCOL".
Anders Lindahl

11

Một vật phẩm có thể là bất kỳ kết quả nào của quá trình xây dựng của bạn. Điều quan trọng là nó không quan trọng đối với ứng dụng khách nào được xây dựng, nó sẽ được chuyển từ không gian làm việc trở lại máy chủ (máy chủ) và được lưu trữ ở đó với một liên kết đến bản dựng. Ưu điểm là nó được phiên bản theo cách này, bạn chỉ phải thiết lập sao lưu trên bản gốc của mình và tất cả các tạo phẩm đều có thể truy cập được thông qua giao diện web ngay cả khi tất cả các máy khách xây dựng đang ngoại tuyến.

Có thể định nghĩa một biểu thức chính quy là tên giả. Trong trường hợp của tôi, tôi đã nén tất cả các tệp mà tôi muốn lưu trữ trong một tệp có tên không đổi trong quá trình xây dựng.


3
"Có thể định nghĩa một biểu thức chính quy là tên giả. Trong trường hợp của tôi, tôi đã nén tất cả các tệp" Bạn có thể giải thích điều này? nó có vẻ chính xác những gì tôi muốn?
Chris Milburn

7

Ngoài ra, Jenkins có xóa các vật phẩm sau mỗi lần xây dựng không? (không phải các hiện vật được lưu trữ, tôi biết tôi có thể bảo nó xóa chúng đi)

Không, Hudson / Jenkins không tự mình dọn sạch không gian làm việc sau khi xây dựng. Bạn có thể có các hành động trong quá trình xây dựng của mình để xóa, ghi đè hoặc di chuyển các tạo phẩm xây dựng từ nơi bạn để lại chúng. Có một tùy chọn trong cấu hình công việc, trong Tùy chọn dự án nâng cao (phải được mở rộng), được gọi là "Làm sạch không gian làm việc trước khi xây dựng" sẽ xóa sạch không gian làm việc khi bắt đầu xây dựng mới.


1

Trong Jenkins 2.60.3, có một cách để xóa các tạo phẩm xây dựng (không phải các tạo phẩm được lưu trữ) để tiết kiệm dung lượng ổ cứng trên máy xây dựng. Trong phần Chung, kiểm tra "Hủy các bản dựng cũ" bằng chiến lược "Xoay vòng nhật ký" và sau đó đi vào các tùy chọn Nâng cao. Hai tùy chọn khác sẽ xuất hiện liên quan đến việc giữ các tạo phẩm xây dựng cho công việc dựa trên số ngày hoặc bản dựng.

Các cài đặt phù hợp với tôi là nhập 1 cho "Số lượng bản dựng tối đa để giữ với các tạo phẩm" và sau đó có hành động hậu xây dựng để lưu trữ các tạo phẩm. Bằng cách này, tất cả các tạo phẩm từ tất cả các bản dựng sẽ được lưu trữ, tất cả thông tin từ các bản dựng sẽ được lưu, nhưng chỉ bản dựng cuối cùng sẽ giữ các tạo tác của riêng nó.

Hủy tùy chọn bản dựng cũ

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.