在 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