Jenkins、rbenv、bundler - 使用 Jenkins 和 rbenv 时,rbenv 插件如何预安装捆绑器,为什么我的情况不是这样?
Jenkins, rbenv, bundler - When using Jenkins and rbenv, how does the rbenv plugin preinstall bundler, and why isn't it in my case?
我正在使用 Jenkins 和 Appium 的 Ruby 库在 OSX 上设置一个 CI 环境。
我正在使用 rake 任务在 RSpec 中启动我的测试套件。
使用类似的配置,我能够 运行 在另一台机器上使用 Jenkins 进行测试。我现在正在使用 rbenv(和 rbenv 插件)并遇到一些问题。
这是我尝试 运行 这份工作时得到的结果:
$ bash -c "[ -d $HOME/.rbenv-jenkins ]"
$ bash -c "[ -d $HOME/.rbenv-jenkins/plugins/ruby-build ]"
$ bash -c "cd /Users/Shared/Jenkins/Home/workspace/Tests && env RBENV_ROOT\=$HOME/.rbenv-jenkins RBENV_VERSION\=2.2.5 CONFIGURE_OPTS\= RUBY_CONFIGURE_OPTS\= $HOME/.rbenv-jenkins/bin/rbenv local 2>/dev/null || true"
Use local Ruby version 2.2.5.
$ bash -c "mkdir $HOME/.rbenv-jenkins/.lock"
$ bash -c "env RBENV_ROOT\=$HOME/.rbenv-jenkins RBENV_VERSION\=2.2.5 CONFIGURE_OPTS\= RUBY_CONFIGURE_OPTS\= $HOME/.rbenv-jenkins/bin/rbenv versions --bare"
$ bash -c "env RBENV_ROOT\=$HOME/.rbenv-jenkins RBENV_VERSION\=2.2.5 CONFIGURE_OPTS\= RUBY_CONFIGURE_OPTS\= $HOME/.rbenv-jenkins/bin/rbenv rehash"
$ bash -c "env RBENV_ROOT\=$HOME/.rbenv-jenkins RBENV_VERSION\=2.2.5 CONFIGURE_OPTS\= RUBY_CONFIGURE_OPTS\= $HOME/.rbenv-jenkins/bin/rbenv exec gem list"
$ bash -c "env RBENV_ROOT\=$HOME/.rbenv-jenkins RBENV_VERSION\=2.2.5 CONFIGURE_OPTS\= RUBY_CONFIGURE_OPTS\= $HOME/.rbenv-jenkins/bin/rbenv rehash"
$ bash -c "rm -rf $HOME/.rbenv-jenkins/.lock"
[Tests] $ bundle exec rake ios
FATAL: rake execution failed
java.io.IOException: Cannot run program "bundle" (in directory "/Users/Shared/Jenkins/Home/workspace/Tests"): error=2, No such file or directory
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
at hudson.Proc$LocalProc.<init>(Proc.java:240)
at hudson.Proc$LocalProc.<init>(Proc.java:212)
等
捆绑程序的执行程序不在应有的位置似乎存在问题。
我试过添加
export PATH="$HOME/.rbenv-jenkins/bin:$PATH"
以几种方式进入路径,但似乎没有什么不同 - 当它是 shell 步骤时,我看到它 运行,但我没有得到任何改变。
我已经使用我的 rbenv 插件预安装了 rake 和 bundler,但我没有看到它们被安装 - 我不确定为什么。
当我登录到 Jenkins 用户时,我可以通过 rspec
、rake
和 bundle exec rake
进行 运行 测试。
知道什么没有做它应该做的事吗?如果有遗漏的细节,请告诉我,谢谢!
编辑:
当我添加 gem install bundle
和 gem install rake
shell 命令时,我得到以下信息:
+ gem install bundler
Successfully installed bundler-1.13.2
Parsing documentation for bundler-1.13.2
Done installing documentation for bundler after 4 seconds
1 gem installed
+ gem install rake
ERROR: Error installing rake:
"rake" from rake conflicts with /Users/Shared/Jenkins/.rbenv-jenkins/versions/2.2.5/bin/rake
Build step 'Execute shell' marked build as failure
Finished: FAILURE
我的预安装 gem 是 rake,bundler
- 但似乎只有 rake 被正确预安装。
运行 没有安装 rake 的作业(并且在 bundler 安装后使用 rbenv rehash),我得到了同样的错误。
在这种情况下,结果是 gem 依赖项错误 - 说完一切后,nokogiri 安装错误。
我能够通过 运行 bundle exec rake ios
(我的测试任务)作为 shell 命令而不是通过插件作为 rake 任务来揭示让我狩猎的错误消息.
从那里,我得到了一个关于错误版本的错误,在尝试了一些 gem 文件调整(并修改了我的 Gemfile.lock)之后,我 运行 捆绑安装作为 shell 行,并注意到 nokogiri 安装以熟悉的方式失败(由于某些 Xcode 版本杂耍,我怀疑这是相当特殊的)。
因此,如果您迷路并在类似地点寻找指导,请尝试 运行 将任务作为 shell 行,这样您会得到更详细的错误。
我正在使用 Jenkins 和 Appium 的 Ruby 库在 OSX 上设置一个 CI 环境。
我正在使用 rake 任务在 RSpec 中启动我的测试套件。
使用类似的配置,我能够 运行 在另一台机器上使用 Jenkins 进行测试。我现在正在使用 rbenv(和 rbenv 插件)并遇到一些问题。
这是我尝试 运行 这份工作时得到的结果:
$ bash -c "[ -d $HOME/.rbenv-jenkins ]"
$ bash -c "[ -d $HOME/.rbenv-jenkins/plugins/ruby-build ]"
$ bash -c "cd /Users/Shared/Jenkins/Home/workspace/Tests && env RBENV_ROOT\=$HOME/.rbenv-jenkins RBENV_VERSION\=2.2.5 CONFIGURE_OPTS\= RUBY_CONFIGURE_OPTS\= $HOME/.rbenv-jenkins/bin/rbenv local 2>/dev/null || true"
Use local Ruby version 2.2.5.
$ bash -c "mkdir $HOME/.rbenv-jenkins/.lock"
$ bash -c "env RBENV_ROOT\=$HOME/.rbenv-jenkins RBENV_VERSION\=2.2.5 CONFIGURE_OPTS\= RUBY_CONFIGURE_OPTS\= $HOME/.rbenv-jenkins/bin/rbenv versions --bare"
$ bash -c "env RBENV_ROOT\=$HOME/.rbenv-jenkins RBENV_VERSION\=2.2.5 CONFIGURE_OPTS\= RUBY_CONFIGURE_OPTS\= $HOME/.rbenv-jenkins/bin/rbenv rehash"
$ bash -c "env RBENV_ROOT\=$HOME/.rbenv-jenkins RBENV_VERSION\=2.2.5 CONFIGURE_OPTS\= RUBY_CONFIGURE_OPTS\= $HOME/.rbenv-jenkins/bin/rbenv exec gem list"
$ bash -c "env RBENV_ROOT\=$HOME/.rbenv-jenkins RBENV_VERSION\=2.2.5 CONFIGURE_OPTS\= RUBY_CONFIGURE_OPTS\= $HOME/.rbenv-jenkins/bin/rbenv rehash"
$ bash -c "rm -rf $HOME/.rbenv-jenkins/.lock"
[Tests] $ bundle exec rake ios
FATAL: rake execution failed
java.io.IOException: Cannot run program "bundle" (in directory "/Users/Shared/Jenkins/Home/workspace/Tests"): error=2, No such file or directory
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
at hudson.Proc$LocalProc.<init>(Proc.java:240)
at hudson.Proc$LocalProc.<init>(Proc.java:212)
等
捆绑程序的执行程序不在应有的位置似乎存在问题。
我试过添加
export PATH="$HOME/.rbenv-jenkins/bin:$PATH"
以几种方式进入路径,但似乎没有什么不同 - 当它是 shell 步骤时,我看到它 运行,但我没有得到任何改变。
我已经使用我的 rbenv 插件预安装了 rake 和 bundler,但我没有看到它们被安装 - 我不确定为什么。
当我登录到 Jenkins 用户时,我可以通过 rspec
、rake
和 bundle exec rake
进行 运行 测试。
知道什么没有做它应该做的事吗?如果有遗漏的细节,请告诉我,谢谢!
编辑:
当我添加 gem install bundle
和 gem install rake
shell 命令时,我得到以下信息:
+ gem install bundler
Successfully installed bundler-1.13.2
Parsing documentation for bundler-1.13.2
Done installing documentation for bundler after 4 seconds
1 gem installed
+ gem install rake
ERROR: Error installing rake:
"rake" from rake conflicts with /Users/Shared/Jenkins/.rbenv-jenkins/versions/2.2.5/bin/rake
Build step 'Execute shell' marked build as failure
Finished: FAILURE
我的预安装 gem 是 rake,bundler
- 但似乎只有 rake 被正确预安装。
运行 没有安装 rake 的作业(并且在 bundler 安装后使用 rbenv rehash),我得到了同样的错误。
在这种情况下,结果是 gem 依赖项错误 - 说完一切后,nokogiri 安装错误。
我能够通过 运行 bundle exec rake ios
(我的测试任务)作为 shell 命令而不是通过插件作为 rake 任务来揭示让我狩猎的错误消息.
从那里,我得到了一个关于错误版本的错误,在尝试了一些 gem 文件调整(并修改了我的 Gemfile.lock)之后,我 运行 捆绑安装作为 shell 行,并注意到 nokogiri 安装以熟悉的方式失败(由于某些 Xcode 版本杂耍,我怀疑这是相当特殊的)。
因此,如果您迷路并在类似地点寻找指导,请尝试 运行 将任务作为 shell 行,这样您会得到更详细的错误。