【发布时间】:2017-02-06 23:52:08
【问题描述】:
我正在研究一个 gem (atd),我只是试图让 gitlab CI 在我的 gem 支持的所有 ruby 版本(2.2.2 - 2.4.0)上运行我的测试,包括错误修复版本。我有an issue (GitLab CI pipline link, see versions > 2.3.0) 和rainbow gem 不适用于早于2.6.9 的rubygems 版本(当前的rubygems 版本是2.6.10),所以在我的gitlab ci 构建(基本上是docker 容器)中,我尝试运行gem update --system在bundle install 之前,这消除了彩虹错误,但是在仅在 ruby 版本 2.2.4 和 2.3.0 上运行gem update --system 时出现以下错误,这很奇怪,因为这两个版本之间有 2 个版本,2.2 .5 和 2.2.6:
Running with gitlab-ci-multi-runner 1.10.4 (b32125f)
Using Docker executor with image ruby:2.2.4 ...
Pulling docker image ruby:2.2.4 ...
Running on runner-fa6cab46-project-1684988-concurrent-0 via runner-fa6cab46-machine-1486422765-ae1c6a3c-gce...
Cloning repository...
Cloning into '/builds/thesecretmaster/atd'...
Checking out ebe7405a as development...
Skipping Git submodules setup
$ ruby -v
ruby 2.2.4p230 (2015-12-16 revision 53155) [x86_64-linux]
$ which ruby
/usr/local/bin/ruby
$ gem install rubygems-update
Successfully installed rubygems-update-2.6.10
1 gem installed
$ gem update --system
ERROR: While executing gem ... (Errno::ENOENT)
No such file or directory @ dir_chdir - /usr/local/bundle/gems/rubygems-update-2.6.3
Updating rubygems-update
Successfully installed rubygems-update-2.6.10
ERROR: Build failed: exit code 1
我认为这可能与升级前的 rubygems 版本有关,但我不确定。我知道 ruby 2.2.4 和 2.3.0 从 rubygems 2.6.3 到 2.6.10 失败了。
这是通过和失败的表格:
ruby -v | initial gem -v | ci pass/fail
=======================================
2.2.2 | 2.4.8 | pass
2.2.3 | 2.5.0 | pass
2.2.4 | 2.6.3 | fail
2.2.5 | 2.6.8 | pass
2.2.6 | 2.6.10 | pass
2.3.0 | 2.6.3 | fail
2.3.1 | 2.6.8 | pass
2.3.2 | 2.6.8 | pass
2.3.3 | 2.6.10 | pass
2.4.0 | 2.6.10 | pass
【问题讨论】:
标签: ruby docker rubygems gitlab-ci