在buildbot里面有很多路径等是通过环境变量来生效,很可能环境变量没有加到python中去,这肯定就有问题了

build-infrastructure/slave/run_slave.py 有一个函数remove_all_vars_except,

  1. def remove_all_vars_except(dictionary, keep): 
  2.   """Remove all keys from the specified dictionary except those in !keep|""" 
  3.   for key in set(dictionary.keys()) - set(keep): 
  4.     dictionary.pop(key) 


启动这个函数的时候remove_all_vars_except(os.environ, env_var),
会把不在env_var中的环境变量pop掉,所以如果我们添加了一个新的环境变量,需要手动添加

例如win环境变量需要添加到env_var(linux也一样):
 

  1. env_var = [ 
  2.         'APPDATA', 
  3.         'BUILDBOT_ARCHIVE_FORCE_SSH', 
  4.         'CHROME_HEADLESS', 
  5.         'CHROMIUM_BUILD', 
  6.         'COMSPEC', 
  7.         'COMPUTERNAME', 
  8.         'DXSDK_DIR', 
  9.         'HOMEDRIVE', 
  10.         'HOMEPATH', 
  11.         'LOCALAPPDATA', 
  12.         'NUMBER_OF_PROCESSORS', 
  13.         'OS', 
  14.         'PATH', 
  15.         'PATHEXT', 
  16.         'PROCESSOR_ARCHITECTURE', 
  17.         'PROCESSOR_ARCHITEW6432', 
  18.         'PROGRAMFILES', 
  19.         'PROGRAMW6432', 
  20.         'PYTHONPATH', 
  21.         'SYSTEMDRIVE', 
  22.         'SYSTEMROOT', 
  23.         'TEMP', 
  24.         'TESTING_MASTER', 
  25.         'TESTING_MASTER_HOST', 
  26.         'TESTING_SLAVENAME', 
  27.         'TMP', 
  28.         'USERNAME', 
  29.         'USERDOMAIN', 
  30.         'USERPROFILE', 
  31.         'WINDIR', 
  32.         'DISABLE_CLOBBER', 
  33.     ]