【问题标题】:Jenkins - Rake plugin can not find RakeJenkins - Rake 插件找不到 Rake
【发布时间】:2012-09-11 07:44:02
【问题描述】:

我在我的 Jenkins 工作中使用了几个 Rake 步骤(通过 Rake 插件),但它声称无法找到 Rake:

+ bundle update
.................................
Using rake (0.9.2.2) 
.................................
[workspace] $ rake db:drop
FATAL: rake execution failed
java.io.IOException: Cannot run program "rake" (in directory "/var/lib/jenkins/jobs/myproject/workspace"): java.io.IOException: error=2, No such file or directory
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:475)
    at hudson.Proc$LocalProc.<init>(Proc.java:244)
    at hudson.Proc$LocalProc.<init>(Proc.java:216)
    at hudson.Launcher$LocalLauncher.launch(Launcher.java:709)
    at hudson.Launcher$ProcStarter.start(Launcher.java:338)
    at hudson.Launcher$ProcStarter.join(Launcher.java:345)
    at hudson.plugins.rake.Rake.perform(Rake.java:141)
    at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:19)
    at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:717)
    at hudson.model.Build$BuildExecution.build(Build.java:199)
    at hudson.model.Build$BuildExecution.doRun(Build.java:160)
    at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:499)
    at hudson.model.Run.execute(Run.java:1502)
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
    at hudson.model.ResourceController.execute(ResourceController.java:88)
    at hudson.model.Executor.run(Executor.java:236)
Caused by: java.io.IOException: java.io.IOException: error=2, No such file or directory
    at java.lang.UNIXProcess.<init>(UNIXProcess.java:164)
    at java.lang.ProcessImpl.start(ProcessImpl.java:81)
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:468)
    ... 15 more
Build step 'Invoke Rake' marked build as failure
Finished: FAILURE

如果我在 Jenkins 的配置中手动指定 Ruby 路径:

[workspace] $ rake db:drop
[31mERROR: Gem rake is not installed, run `gem install rake` first.(B[m
Build step 'Invoke Rake' marked build as failure
Finished: FAILURE

如果我在 Jenkins 中将 rake 作为普通 shell 命令执行,没有 Rake 插件:

+ rake db:drop
/var/lib/jenkins/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/yaml.rb:56:in `<top (required)>':
It seems your ruby installation is missing psych (for YAML output).
To eliminate this warning, please install libyaml and reinstall your ruby.

当我执行“bundle exec rake db:drop”时,同样发生了两次。

在作业中暂时包括两行:

rvm pkg install libyaml
rvm reinstall 1.9.3

没有帮助。 (更新:这只是警告,不会影响任何事情,但很烦人)。

我在 Jenkins 之外的 ~/.rvm 目录中安装了另一个 RVM + Ruby 包,它工作得很好。

【问题讨论】:

  • 如果你这样做了怎么办:bundle exec rake db:drop
  • 你找到这个的 sln 了吗?
  • 没有。目前我因为不方便而放弃了Jenkins,所以我在这方面的研究已经停止。

标签: ruby-on-rails jenkins rake jenkins-plugins


【解决方案1】:

不确定它是否对您有帮助,但我遇到了类似的问题。问题是我安装 Rake gem 的 Ruby 路径不在 Jenkins 进程的路径中。

我使用的 init.d 脚本 (/etc/init.d/jenkins) 硬编码了 PATH 变量:

PATH=/bin:/usr/bin:/sbin:/usr/sbin

由于我使用的是 ChefDK,因此我将嵌入式 ChefDK Ruby 添加到了 init.d 脚本路径:

PATH=/bin:/usr/bin:/sbin:/usr/sbin:/opt/chefdk/embedded/bin:/opt/chefdk/bin/

您可能需要根据 Ruby 的安装位置修改路径。希望这对某人有所帮助。

【讨论】:

  • 两天前我必须这样做。 +1
【解决方案2】:

试试Rake Plugin

根据我们的需要,RVM Plugin 完成了这项工作,其余的就像捆绑包一样,我们放入了脚本/shell 构建步骤。

【讨论】:

  • 这些错误出现在我使用这个 Rake 插件时。当我尝试不使用它时,一切都很好。我也在使用 RVM 插件。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-11
  • 2012-06-24
  • 2013-09-13
  • 2012-01-11
  • 2011-10-07
相关资源
最近更新 更多