2

我将 Jenkins CI 用于我的 django 项目。对于 Django-Jenkins 集成,我使用的是 django-jenkins 应用程序。在 Jenkins 的构建步骤中,我创建了一个全新的 virtualenv 并使用需求文件为每个构建安装所有依赖项。但是,这会使构建变得非常缓慢,因为必须从 PyPI 镜像下载所有依赖项的新副本,即使自上次构建以来依赖项没有任何变化。PIP_DOWNLOAD_CACHE所以我开始通过设置环境变量使用内置的本地缓存来pip 。但是整个构建过程仍然非常缓慢,需要 10 多分钟。有什么办法可以加快整个过程吗?也许通过缓存已编译的依赖项或其他方式?

4

2 回答 2

1

如果您的 requirements.txt 文件发生更改,只需安装一个新的 virtualenv。这可以通过一些 shell 命令轻松完成。我们正在我们的一个项目中做类似的事情。在 Jenkins shell 窗口中(在 svn up 之后):

touch changed.txt
stat -c %Y project/requirements.txt > changed1.txt
diff -q changed.txt changed1.txt || echo "DO YOUR PIP --upgrade HERE!"
于 2013-07-18T09:15:35.837 回答
0

为什么每次构建时都要创建一个新的 virtualenv?您应该能够只创建一个并简单地将其激活. /path/to/venv/bin/activate为“执行 shell 脚本”构建步骤(假设在此处使用 linux)。然后,如果您需要安装新的依赖项,您可以自己激活 venv 并 pip 安装新的包。

于 2013-07-19T21:02:51.977 回答