繁体   English   中英

检查当前 Python 脚本是否在 Jenkins 环境中运行

[英]Check if current Python script is running in a Jenkins environment

我正在编写一个打算从 Jenkins 运行的 Python 3 脚本; 但是,我希望它仅在开发人员的 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

实际上,我不喜欢强迫开发人员在他/她的环境中定义 DEBUGMODE,所以我想知道是否还有其他方法可以让我的脚本自动知道它是在 Jenkins 作业中运行而不是在调试器中运行。

提前致谢!

最大限度

当 Jenkins 作业执行时,它总是设置一些默认环境变量
在您的 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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM