【发布时间】:2016-10-03 07:29:40
【问题描述】:
我正在使用 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)
等等。
bundler 的 exec 似乎存在问题,不在应有的位置。
我已经尝试添加
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 的情况下运行作业(并且在安装捆绑程序后使用 rbenv rehash),我得到了同样的错误。
【问题讨论】: