CI 任务可以在不修改已检出 tox.ini 的情况下,把自身的代理环境传入 tox。对于 tox 4 的 INI 配置:

tox --override 'testenv.pass_env+=HTTP_PROXY,HTTPS_PROXY,NO_PROXY' -e py

+= 形式会追加到现有的 pass_env 列表,而普通的 = 会替换该配置列表。变量必须已经存在于启动 tox 的环境中;覆盖只提供变量名,不提供代理值。

对应的临时环境输入是:

TOX_OVERRIDE='testenv.pass_env+=HTTP_PROXY,HTTPS_PROXY,NO_PROXY' tox -e py

这些示例使用 POSIX shell 的引号写法。tox 对 pass_env 名称不区分大小写,因此所选名称也能匹配小写变体。

对于 tox 原生 TOML 配置,运行环境的基础表是 env_run_base 而不是 testenv。请使用与真实配置格式相符的路径。

这配置的是测试运行环境。单独的打包环境可能需要自己的转发策略。同样,比较下载器实际接收的输入;客户端仍然自行决定是否遵从收到的变量。一次运行的覆盖可以避免在仓库中留下专属于 CI 的改写,但当每次运行都需要这条路径时,它并不能取代项目既定的策略。

相关文章