2013-06-12 42 views
5

vì vậy tôi có một kịch bản bash trong đó tôi sử dụng các biến môi trường từ Jenkins ví dụ: vòng loại = echo $BUILD_ID | sed "s/[-_]//g" | cut -c1-12Làm thế nào để sử dụng các biến Jenkins Môi trường trong kịch bản python

Về cơ bản tôi đang tham gia xây dựng id, cùng với tên công việc để xác định kịch bản nào cần gọi từ tập lệnh chính của tôi. Tôi muốn sử dụng python thay vì vậy tôi đã tự hỏi liệu tôi có thể sử dụng các biến này mà không có api jenkins python.

Tôi hy vọng câu hỏi có ý nghĩa. Cảm ơn

+1

bạn có thể giải thích bạn muốn gì? –

+1

Tôi cần sử dụng các biến môi trường trong Jenkins như JOB_NAME để quyết định tập lệnh nào cần gọi. Tôi có một kịch bản bash mà được các biến nhưng tôi muốn làm điều này trong một kịch bản python. Làm thế nào tôi sẽ nhận được các biến trong python? –

+0

xem này, http: //docs.python.org/2/library/subprocess.html –

Trả lời

7

Đó là những gì bạn cần nếu tôi hiểu bạn một cách chính xác:

QUALIFIER="$(echo $BUILD_ID | sed "s/[-_]//g" | cut -c1-12)" 
export QUALIFIER 
python my_script.py 

Và trong kịch bản Python của bạn:

import os 
qualifier = os.environ['QUALIFIER'] 

hoặc không có phần vỏ:

import os 
import re 
qualifier = re.sub(r'[-_]+', '', os.environ['BUILD_ID'])[0:12] 
+0

Nhưng tôi có cần tập lệnh bash của tôi cũng như tập lệnh python có 'QUALIFIER' không? $ BUILD_ID biến biến môi trường jenkins thành tập lệnh bash. Có bằng cách nào đó tôi có thể làm cho nó có sẵn cho kịch bản python mà không cần phải sử dụng một bash? –

+0

Thực ra không bao giờ! Cảm ơn rất nhiều, điều này làm việc cho tôi –

+0

Bạn có thể truy cập '$ BUILD_ID' chính xác theo cùng một cách (sử dụng' os.environ') và sau đó loại bỏ dấu gạch ngang và cắt nó trong Python. –

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