Gitlab在CI上缓存了错误的gem包

时间:2017-12-04 14:39:21

标签: rubygems gitlab-ci

我有一个自定义rubygems服务器,其中发布了一些自定义gem。我创造了一个新的宝石,我们称之为the_gem。并以1.0.0版本发布。我的gitlab下的另一个项目(主项目)使用了这个gem,所以我把它包含在那里。然后,main_project上的CI开始了。它使用bundle install --path /tmp/bundle命令获取了1.0.0版本的gem。然后,我意识到我在the_gem中犯了一个错误,所以我用静态版本1.0.0修复了它,因为宝石还没有在任何地方使用过。

我再次在我的主项目上运行CI,而不是从我的服务器获取gem,而是使用缓存的第一个版本(using the_gem 1.0.0而不是预期的installing the_gem 1.0.0 from my.cusomgems.com

我坚信Gitlab会在某个地方缓存宝石以加速CI时间。

但有没有办法从gitlab中删除gem,无论它存储在哪里,都可以再次下载更新的包?

P.S。我知道有一种simple方式 - 发布1.0.1版本,但我想避免这种情况,如果可能的话,并坚持使用版本1.0.0。

1 个答案:

答案 0 :(得分:0)

Gitlab实际上不是这里的问题。 Rubygems不允许覆盖gem版本。您可以使用gem yank删除错误的版本,但您将无法在该服务器上发布另一个1.0.0。有关详细信息,请参阅此github comment