最近在设置项目的pipeline,由于项目用monorepo所以要处理多个模块的构建、测试和发布。基本上每一个模块的第一个步骤都会有一个单独的Job来处理。
由于模块间会有依赖的关系,这就导致要在不同的Job间来传递构建好的数据;而每一个Job都由独立的container运行,从而导致了许多在单机构建时并不需要的资料上下行。
在我的maven项目中当前有两种资料在Job间传递:
1. Maven本地仓库,这个放在cache中,每一个Job开始前要下载cache,面结束后要更新cache;
2. Job构建产生的而要被其他Job依赖的数据,通过Artifacts传给其他Jobs。
当项目中的模块变多时这些数据量将大大的增加,而这时感觉pipeline而要大量的资源来处理这些数据的上下行问题。
而这些若在单机环境下是根本不需要的。
所以,到底是我使用的问题,还是……?