目前,我们在几个小型项目中使用CI,然后才开始使用大型项目。
我们面临的问题是,持续部署更新会导致我们的环境变得肮脏。我的意思是脏的是不会删除旧文件。一段时间后,对于我们来说,不再使用数十个文件并不少见。例如,对于我们的Python项目,我们注意到pip
位于我们virtualenv
内部的许多软件包已过时,因为我们停止使用它了。
我们当前解决此问题的方法是:对应用程序驻留在服务器上的文件夹进行核对,然后上载由我们的构建服务器创建的新工件。
还有其他方法吗?我问,因为显然,每次我们推动创建一个全新的环境都会增加大量的部署时间。我认为这是一个非常普遍的问题,这就是为什么我对能找到与此有关的任何文献感到有些惊讶的原因。
您可以使用滚动符号链接来代替nuking文件夹。其工作方式是为在其上运行CI的每个功能创建一个目录。例如,假设您有2个与功能相对应的文件夹F1和F2。
如果要在F1上运行CI,则将创建一个切换到F1的符号链接。当您要测试F2时,需要将符号链接切换到F2,依此类推。这样,您不必重新部署每段代码。大多数现代工具(java编译器,复制命令)已经具有一种机制,可以在它们相同的情况下不覆盖伪影。
要改善您的CI环境,您可以在一个临时文件夹中创建所有临时工件,并在完成CI后对其进行清理
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句