我们正在gitlab ci上构建几个GO项目,但我们面临以下难题。
当使用全局GOPATH构建项目时(例如在本地计算机上),构建会花费很长时间,因为在每个构建上都将获取所有依赖项。
另一方面,当定义本地GOPATH并缓存由go get创建的文件夹时,我们得到的构建速度很快,但是项目设置很麻烦,其中项目本身不在GOPATH上,等等。
如果有全局缓存,那很好,但是gitlab-ci不允许这样做:
警告:/build/src/git.my.repo:不支持:外部构建目录
最佳答案
在这一点上,我会同意@Kaedys。如果您使用供应商依赖性并缓存了vendor
目录,则无需为每个构建都获取它们。如果您还没有供应商,则有一些tools to help you。
我也看到了本地GOPATH的工作。我不确定您是如何实现的,但是您可以看看here for an example如何实现它。它们具有本地环境,当位于目录中时,会将GOPATH设置为项目目录。
关于go - gitlab-ci中的全局GOPATH,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37786462/