2013-06-12 22 views
5

yüzden var ben mesela Jenkins ortam değişkenleri kullanmak hangi bir betik: niteleyici =piton komut Jenkins Çevre değişkenleri nasıl kullanılır

echo $BUILD_ID | sed "s/[-_]//g" | cut -c1-12 Esasen ben birlikte inşa id alıyorum ana komutumdan hangi komut dosyasının çağrılacağını belirlemek için iş adı. Bunun yerine python kullanmak istiyorum, bu yüzden jenkins python api olmadan bu değişkenleri kullanıp kullanamayacağımı merak ediyorum.

Umarım soru mantıklıdır. Seni doğru anladıysam eğer gerekenler Teşekkür

+1

sen açıklayabiliriz:

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

veya kabuk kısmı olmadan

Ne istiyorsunuz? –

+1

Hangi kodun çağrılacağına karar vermek için JOB_NAME gibi Jenkins'deki ortam değişkenlerini kullanmalıyım. Bu değişkenleri alan bir bash betiğim var ama bunu bir python betiğinde yapmak istedim. Python'da bu değişkenleri nasıl alabilirim? –

+0

buna bakın, http: //docs.python.org/2/library/subprocess.html –

cevap

7

:

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

Ve Python komut

:

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

Ama benim bash betiğime ve python'a 'QUALIFIER' alır mıyım? $ BUILD_ID, jenkins ortam değişkenini bash komut dosyasında kullanılabilir hale getirir. Bir şekilde python senaryosunu bash'ı kullanmak zorunda kalmadan kullanabilir miyim? –

+0

Aslında nevermind! Çok teşekkürler, bu benim için çalışıyor –

+0

'$ BUILD_ID' ile tam olarak aynı yoldan (' os.environ' kullanarak) erişebilir ve ardından tire işaretlerini kaldırabilir ve Python'da dilimleyebilirsiniz. –

İlgili konular