我遵循哈德逊/python/virtualenv CI解决方案的轮廓 在heisel.org上进行了描述 但是,其中的一步确实是在搅动,这是仅为CI运行而创建的Virtualenv配置的部分:

pip install -q -E ./ve -r requirements.pip
pip install -q -E ./ve -r requirements-test.pip

这需要大量的时间来运行,每次源文件更改时,我们最终都会重新下载大量数据。

是否可以在哈德森(Hudson)中创建模板工作空间,以便将其签到一个裸露的工作区,而是签到预先准备的一个工作空间?

有帮助吗?

解决方案

这里有几个选择:

  1. 在源存储库中有一个存档,该存档库吹入Virtualenv/pip安装中。您需要使Virtualenv起点可重新定位。

  2. 使用任何SCM选项都不适合擦除构建之间的工作空间(例如使用SVN更新,或者不要检查Mercurial的清洁构建选项)。然后将安装命令保留在您的构建脚本中,但将它们放在 if 声明这样,因此只能运行(例如) .pip_installed 文件不存在,或者如果设置了构建参数。

  3. 您可能能够得到 克隆工作区 插件可以做您想做的。但这是另一种SCM,我猜您可能不想要它,因为哈德森不会从多个SCMS上检查(请参阅 以前的问题 有关解决此问题的一些想法)。

设置您的PIP配置以从本地的软件包中提取,这可能也是一个好主意。

pip -f http://localhost/packages/

其他提示

一个增强功能是将virtualenv打包在要求文件的哈希命名的档案中。如果需求文件自上次构建以来没有更改,则只需将存档提取到空的Virtualenv目录中即可。如果需求文件已更改,则将不存在存档,因此您运行PIP安装以构建环境,然后将其存储在新的存档中。

如果您为每个工作空间创建新的VENV,那么您只需要在开始时安装所有DEP,以便后续的构建速度要快得多。请参阅我的帖子以获取我写的脚本,以帮助:

python的“漂亮”连续集成

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top