在Jenkins中,有没有办法保留npm包,所以我不必在每个构建中安装它们?

时间:2013-11-05 14:51:09

标签: jenkins npm cloudbees persist node-modules

我正在使用Jenkins(CloudBess)来构建我的项目,并在每个构建中运行一些脚本以使用npm下载一些节点包。 昨天npm注册服务器遇到了麻烦,这阻碍了项目的构建周期。

为了不依赖外部服务器,有没有办法在Jenkins中保存我的node_modules /文件夹,所以我不必在每个构建中下载它们?

2 个答案:

答案 0 :(得分:1)

CloudBees使用一个从属池来支持您的构建,本质上您可以在各种主机上运行构建,因此从一个新的工作区开始。无论如何,我们尝试分配你已经用过的奴隶以避免下载延迟 - 这适用于存储在工作区中的所有文件。

我认为这不会阻止npm存储库离线的问题。

答案 1 :(得分:1)

您可以查看package.json文件和备份node_modules目录。

当您在jenkins中开始下一次构建时,只需检查package.json文件和node_modules备份,如果package.json文件没有更改,只需使用以前的备份。

PKG_SUM=$(md5sum package.json|cut -d\  -f 1)
CACHED_FILE=${PKG_SUM}.tgz
[[ -f ${CACHED_FILE} ]] && tar zxf ${CACHED_FILE}
npm install
[[ -f ${CACHED_FILE} ]] || tar zcf ${CACHED_FILE} node_moduels

上面是非常简单的缓存实现,否则你应该检查缓存文件是否没有损坏。