[英]Jenkins with Windows slave with Python - Setting environment variables while building and using them when running a python script
[英]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.