#python #jenkins #environment-variables
Вопрос:
Я пишу сценарий Python 3, предназначенный для запуска от Дженкинса; Однако я бы хотел, чтобы он печатал несколько отладочных сообщений только тогда, когда он запускается локально на компьютере разработчика.
Я знаю, что возможным решением было бы создание переменной среды в среде IDE разработчика, которая будет передана интерпретатору, а затем проверена на ее наличие при запуске:
debug_mode = False
if 'DEBUGMODE' in os.environ:
debug_mode = bool(os.environ.get('DEBUGMODE'))
print('Script is starting up')
(...) # Do stuff
if debug_mode:
print('So many things to do...')
(...) # Do other stuff
На самом деле, мне не нравится заставлять разработчика определять ОТЛАДОЧНЫЙ режим в своей среде, поэтому мне
интересно, есть ли какой-либо другой способ, чтобы мой скрипт автоматически знал, что он выполняется в задании Дженкинса, а не в отладчике.
Заранее спасибо!
Макс
Ответ №1:
Когда выполняется задание Дженкинса, оно всегда устанавливает некоторые переменные среды по умолчанию.
в вашем коде python вы можете просто проверить, существует ли одна (или несколько) из этих переменных.
Вы можете выбрать JENKINS_URL
переменную среды, так как она довольно уникальна и, вероятно, не будет использоваться для каких-либо других целей, помимо того, чего вы хотите достичь.
поэтому ваш код может выглядеть так:
debug_mode = 'JENKINS_URL' not in os.environ
print('Script is starting up')
(...) # Do stuff
if debug_mode:
print('So many things to do...')
(...) # Do other stuff