2015-09-30 10 views

Trả lời

6

Về mặt kỹ thuật, bạn không thể chuyển các biến env từ công việc này sang công việc tiếp theo và tôi không biết một plugin để làm điều đó ngoài hộp.

Tuy nhiên, có một kỹ thuật. Ý tưởng là tạo tệp thuộc tính trong công việc đầu tiên (ví dụ: exports.properties), thêm tệp đó vào các tạo phẩm công việc và sau đó nhập tệp này qua EnvInject plugin trong công việc thứ hai.

Điều này giả định rằng bạn có một số liên kết giữa công việc đầu tiên và thứ hai, thường đạt được với plugin Copy Artifact, nhưng một số plugin giống như quy trình làm việc cũng có thể giúp bạn.

Ví dụ: để tạo tệp thuộc tính, hãy thêm bước "Thực thi trình bao", ví dụ:

echo "# Saving some version properties 
BUILD_VERSION=${BuildVersion} 
BUILD_NODE_NAME=${NODE_NAME} 
SOURCE_JOB=${JOB_NAME} 
" > ${WORKSPACE}/BuildVersion.properties 

Tất nhiên, bạn có thể sử dụng các bước xây dựng khác, ví dụ: Windows shell, groovy script, v.v ... với mỗi cú pháp cụ thể của khóa học.

+0

Làm cách nào để tạo tệp thuộc tính trong công việc đầu tiên? Có plugin cho điều đó không? Bạn có thể giúp tôi với một ví dụ? –

+0

Tăng cường câu trả lời bằng một ví dụ với một tập lệnh shell (* nix) –

0

Có hai cách để thực hiện tùy thuộc vào usecase của bạn: -

1) EnvfilePlugin -

Cài đặt plugin này nếu các biến môi trường của bạn là cố định và không thay đổi khi đang bay/Năng động, sau đó bạn có thể lưu chúng trong một tệp văn bản và đưa ra lời tuyên thệ của tệp trong trang Cấu hình công việc của Jenkins. Trong Kiểm tra môi trường xây dựng Đặt các biến môi trường thông qua một tệp. cung cấp đường dẫn của tệp đó tại đây.

Nếu biến môi trường được tạo trong công việc đầu tiên thì bạn có thể lưu tất cả biến môi trường trong một tệp và duyệt qua sử dụng phương pháp trên.

2) EnvInject plugin -

Cài đặt plugin này và đi đến cấu hình công việc paeg. Chọn "Chuẩn bị môi trường để chạy" và lưu các thuộc tính như được đề cập bởi Patrice trong câu trả lời ở trên, cũng chỉ định đường dẫn của tập lệnh và các chi tiết khác.

0

Bạn có thể làm việc ở hạ lưu của bạn tham số (thêm các thông số trong trang cấu hình công việc), sau đó kích hoạt công việc này từ một Workflow việc thượng nguồn, kịch bản công việc sẽ là một cái gì đó như thế này:

build job: 'my-downstream-job', parameters: 
    [[$class: 'StringParameterValue', name: 'MY_VAR', value: 'Hello world!']] 

Sau đó, bạn có thể sử dụng MY_VAR như mong muốn trong số my-downstream-job của bạn.

Các vấn đề liên quan