在 Jenkins 环境中检查当前 Python 脚本是否为 运行
Check if current Python script is running in a Jenkins environment
我正在编写一个 Python 3 脚本,本意是来自 Jenkins 的 运行;但是,我希望它仅在 运行 在开发人员的 PC 本地时打印几条调试消息。
我知道一个可能的解决方案是在开发人员的 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
其实我不喜欢强迫开发者在his/her环境下定义DEBUGMODE,所以我
想知道我的脚本是否有任何其他方法可以自动知道它 运行 在 Jenkins 作业中而不是在调试器中。
提前致谢!
最大
当 Jenkins 作业执行时,它总是设置一些 default environment variables。
在您的 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
我正在编写一个 Python 3 脚本,本意是来自 Jenkins 的 运行;但是,我希望它仅在 运行 在开发人员的 PC 本地时打印几条调试消息。
我知道一个可能的解决方案是在开发人员的 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
其实我不喜欢强迫开发者在his/her环境下定义DEBUGMODE,所以我 想知道我的脚本是否有任何其他方法可以自动知道它 运行 在 Jenkins 作业中而不是在调试器中。
提前致谢!
最大
当 Jenkins 作业执行时,它总是设置一些 default environment variables。
在您的 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