2013-06-12 6 views
5

więc mam skrypt bash, w których mogę użyć zmiennych środowiskowych z Jenkins na przykład: kwalifikator = echo $BUILD_ID | sed "s/[-_]//g" | cut -c1-12Jak używać zmiennych środowiskowych w skrypcie Jenkins Pythona

Zasadniczo Biorę id gromadzeniu, wraz z nazwa zadania, aby określić, który skrypt wywołać z mojego głównego skryptu. Chciałbym użyć python zamiast tego, więc zastanawiałem się, czy mogę używać tych zmiennych bez Pythona.

Mam nadzieję, że to pytanie ma sens. Dzięki

+1

można wyjaśnić czego chcesz? –

+1

Potrzebuję użyć zmiennych środowiskowych w Jenkins, takich jak JOB_NAME , aby zdecydować, który skrypt wywołać. Mam skrypt bash, który pobiera te zmienne, ale chciałem to zrobić w skrypcie Pythona. Jak uzyskać te zmienne w python? –

+0

zobacz to, http: //docs.python.org/2/library/subprocess.html –

Odpowiedz

7

To czego potrzebujesz, jeśli cię rozumiem poprawnie:

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

I w skrypcie Pythona:

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

lub bez części skorupy:

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

Ale czy potrzebuję mojego skryptu bash, a także pytona, który bierze "QUALIFIER"? $ BUILD_ID powoduje, że zmienna środowiskowa jenkins jest dostępna dla skryptu bash. Czy w jakiś sposób mogę udostępnić go skryptowi Pythona bez konieczności używania bash? –

+0

Właściwie nieważne! Wielkie dzięki, to działa dla mnie –

+0

Możesz uzyskać dostęp do '$ BUILD_ID' dokładnie w taki sam sposób (używając' os.environ'), a następnie usunąć kreski i wyciąć je w Pythonie. –