在buildbot里面有很多路径等是通过环境变量来生效,很可能环境变量没有加到python中去,这肯定就有问题了
build-infrastructure/slave/run_slave.py 有一个函数remove_all_vars_except,
- def remove_all_vars_except(dictionary, keep):
- """Remove all keys from the specified dictionary except those in !keep|"""
- for key in set(dictionary.keys()) - set(keep):
- dictionary.pop(key)
启动这个函数的时候remove_all_vars_except(os.environ, env_var),
会把不在env_var中的环境变量pop掉,所以如果我们添加了一个新的环境变量,需要手动添加
例如win环境变量需要添加到env_var(linux也一样):
- env_var = [
- 'APPDATA',
- 'BUILDBOT_ARCHIVE_FORCE_SSH',
- 'CHROME_HEADLESS',
- 'CHROMIUM_BUILD',
- 'COMSPEC',
- 'COMPUTERNAME',
- 'DXSDK_DIR',
- 'HOMEDRIVE',
- 'HOMEPATH',
- 'LOCALAPPDATA',
- 'NUMBER_OF_PROCESSORS',
- 'OS',
- 'PATH',
- 'PATHEXT',
- 'PROCESSOR_ARCHITECTURE',
- 'PROCESSOR_ARCHITEW6432',
- 'PROGRAMFILES',
- 'PROGRAMW6432',
- 'PYTHONPATH',
- 'SYSTEMDRIVE',
- 'SYSTEMROOT',
- 'TEMP',
- 'TESTING_MASTER',
- 'TESTING_MASTER_HOST',
- 'TESTING_SLAVENAME',
- 'TMP',
- 'USERNAME',
- 'USERDOMAIN',
- 'USERPROFILE',
- 'WINDIR',
- 'DISABLE_CLOBBER',
- ]