如何使用pip安装需求时加快jenkins构建过程

时间:2013-07-18 08:55:02

标签: django jenkins pip django-jenkins

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

2 个答案:

答案 0 :(得分:0)

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

touch changed.txt
stat -c %Y project/requirements.txt > changed1.txt
diff -q changed.txt changed1.txt || echo "DO YOUR PIP --upgrade HERE!"

答案 1 :(得分:0)

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