Plugin Jenkins Artifactory không tải xuống trong đa luồng


8

Trong công ty của tôi, chúng tôi đang gặp khó khăn khi tải xuống bằng plugin Artifactory trong Jenkins vì chúng tôi có rất nhiều tệp nhỏ trong kho lưu trữ của chúng tôi và rõ ràng plugin hoạt động trong một luồng duy nhất, vì vậy phải mất một thời gian dài. Chúng tôi đã thử nghiệm JFrog CLI nơi chúng tôi có thể đặt số lượng luồng cho tải xuống và điều đó thực sự hoạt động rất tốt. Tuy nhiên, chúng tôi thực sự cần sử dụng plugin gốc.

Có cách giải quyết nào cho việc này không? Có lẽ nó có liên quan đến cấu hình máy chủ Artifactory?

Lưu ý : Chúng tôi có rất nhiều tệp nhỏ vì đó là cách mà sự phát triển đang được thực hiện trong công ty tôi sợ. Chúng tôi đã nghĩ về việc lưu trữ tất cả các tệp trước khi chúng tôi lưu trữ chúng nhưng điều đó có thể không kinh tế về mặt lưu trữ, vì mỗi tệp zip được tải lên có thể sẽ có một tổng kiểm tra khác nhau.


Thông thường, người ta sẽ đóng gói ứng dụng trước khi tải lên artifactory. Tôi chỉ tự hỏi làm thế nào artifactory được sử dụng trong quá trình phát triển của bạn, nền tảng hoặc ngôn ngữ được sử dụng là gì và các tệp này được tiêu thụ như thế nào. Có một bức tranh rộng hơn về quy trình có thể giúp chúng tôi tìm ra các giải pháp tiềm năng có thể không rõ ràng khi chỉ tập trung vào vấn đề tải xuống.
Newtopian

Câu trả lời:


5

Bạn có thể thử chạy song song tải lên tệp artifactory nếu bạn đang sử dụng cú pháp Jenkinsfile: https://github.com/jenkinsci/pipeline-examples/blob/master/pipeline-examples/abul-from-list/abulFromList.groovy

Dưới đây là một ví dụ đơn giản hơn để chạy song song mọi thứ nếu bạn chỉ có một số lượng cố định những việc bạn muốn làm song song:

parallel (
    "task1" : {
        //runTask1
    },
    "task2" : {
        //runTask2
    },
    "task3" : {
        //runTask3
    },
)

Điều này có thể được đặt trong một node, trong trường hợp đó tất cả chúng sẽ chia sẻ cùng một không gian làm việc hoặc mỗi lệnh có thể xác định nodebên trong mã tác vụ để chạy vào một nút khác trong trường hợp đó sẽ có một không gian làm việc khác nhau cho mỗi tác vụ.


Chào Michael! Tôi đã nói nhiều hơn về việc tải tập tin và không tải lên. Nếu tôi đã làm điều này với việc tải xuống, nó sẽ không lưu các tệp trên các nút khác nhau chứ không phải là một không gian làm việc?
Asaf Haim

Không nhất thiết, tôi sẽ cho bạn một ví dụ tốt hơn trong một vài khoảnh khắc
Michael Pereira

Không chắc chắn phù hợp với trường hợp của tôi kể từ khi tôi tải xuống các vật phẩm, tôi không biết chính xác số lượng tạo tác (sử dụng cú pháp chống kiến ​​để tải xuống toàn bộ kho lưu trữ)
Asaf Haim

Trong trường hợp đó, hãy xem jenkins.io/doc/pipeline/examples/#jobs-in-abul Bạn có thể sử dụng lại cùng một mã và chỉ cần thay đổi bộ đếm vòng lặp thành số phần tử bạn phải tải xuống và thay thế build jobdòng với một cái để tải xuống từ artifactory
Michael Pereira

Nhưng nếu tôi không biết số lượng tệp tôi tải xuống thì sao? Tôi sử dụng ký hiệu dấu sao đôi (**) để tải xuống đệ quy tất cả kho lưu trữ của mình, vì vậy tôi không biết có bao nhiêu tên và tên của chúng.
Asaf Haim
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.