LoginSignup
12
15

More than 5 years have passed since last update.

Jenkinsでrubyのビルドでハマった点

Last updated at Posted at 2015-05-04

Mac Book Proを購入し、以前ローカルで使用していたJenkinsを移行した時にハマったので、ハマったポイントをここに記載しておきます。

rbenv plugin

デフォルトでRBENV_ROOTが"$HOME/.rbenv"になっており、rbenvはそこから利用されるわけだが、rbenv build wrapper利用時だと、指定場所のbin/rbenvを使用しようとしておりエラーとなる

FATAL: (CommandError) failed: "env RBENV_ROOT\\=\\$HOME/.rbenv RBENV_VERSION\\=2.1.5 \\$HOME/.rbenv/bin/rbenv versions --bare"
org.jruby.exceptions.RaiseException: (CommandError) failed: "env RBENV_ROOT\\=\\$HOME/.rbenv RBENV_VERSION\\=2.1.5 \\$HOME/.rbenv/bin/rbenv versions --bare"

スクリーンショット 2015-05-04 10.19.24.png

解決策

これはrbenv build wrapperがリポジトリから落としてきたrbenvを想定して作られているため、brew install等で入れたrbenvでは構造が違うため、上記のシェルでは実行できない。

そのため、RBENV_ROOTを"$HOME/.rbenv-jenkins"等、別の場所を指定してやると、wrapperがgit cloneから行ってくれるので、既にインストールされているrbenvと別の場所を指定してあげればいい。

RubyMetrics plugin

Rails Reportを出力しようとするとエラーになる。

ERROR: Build step failed with exception
java.lang.NullPointerException
    at hudson.plugins.rake.Util.getExecutable(Util.java:22)
    at hudson.plugins.rake.RubyInstallation.getCanonicalExecutable(RubyInstallation.java:70)
    at hudson.plugins.rake.Util.getCanonicalRubies(Util.java:212)
    at hudson.plugins.rake.Util.getCanonicalRubies(Util.java:198)
    at hudson.plugins.rake.Rake$RakeDescriptor.loadInstallations(Rake.java:245)
    at hudson.plugins.rake.Rake.perform(Rake.java:100)
    at hudson.plugins.rubyMetrics.AbstractRailsTaskPublisher.perform(AbstractRailsTaskPublisher.java:65)
    at hudson.tasks.BuildStepMonitor$3.perform(BuildStepMonitor.java:45)
    at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:764)
    at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:724)
    at hudson.model.Build$BuildExecution.post2(Build.java:185)
    at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:671)
    at hudson.model.Run.execute(Run.java:1769)
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
    at hudson.model.ResourceController.execute(ResourceController.java:98)
    at hudson.model.Executor.run(Executor.java:374)
Build step 'Publish Rails Notes report' marked build as failure
Publishing rails stats report...
ERROR: Build step failed with exception
java.lang.NullPointerException
    at hudson.plugins.rake.Util.getExecutable(Util.java:22)
    at hudson.plugins.rake.RubyInstallation.getCanonicalExecutable(RubyInstallation.java:70)
    at hudson.plugins.rake.Util.getCanonicalRubies(Util.java:212)
    at hudson.plugins.rake.Util.getCanonicalRubies(Util.java:198)
    at hudson.plugins.rake.Rake$RakeDescriptor.loadInstallations(Rake.java:245)
    at hudson.plugins.rake.Rake.perform(Rake.java:100)
    at hudson.plugins.rubyMetrics.AbstractRailsTaskPublisher.perform(AbstractRailsTaskPublisher.java:65)
    at hudson.tasks.BuildStepMonitor$3.perform(BuildStepMonitor.java:45)
    at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:764)
    at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:724)
    at hudson.model.Build$BuildExecution.post2(Build.java:185)
    at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:671)
    at hudson.model.Run.execute(Run.java:1769)
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
    at hudson.model.ResourceController.execute(ResourceController.java:98)
    at hudson.model.Executor.run(Executor.java:374)
Build step 'Publish Rails stats report' marked build as failure

最終的にヌルポになるのでエラーの区別がつきづらい。。。
恐らくRakeのversionをDefaultに指定しているため、gem内に何かインストールしてないからだと思われる。

解決策

そもそもDefaultってmacにデフォルトでインストールされているrubyからなのかな。。。
rbenvでrubyを管理しているので直接それを使用してもらうようにする。

  1. Jenkinsの管理 > システムの設定を開き Rakeまで移動する。
  2. Ruby installationの"追加"をクリックし使用するrubyが格納されているパスを指定する。
  3. 保存し、jobのRails ReportでRake Versionを先ほどの保存したものを選択する。

jenkins-rbenv.png

使用するrubyはrbenv build wrapperで指定したrbenv内のrubyのパスを指定してやるとgemのインストール漏れはないはずなので安心である。
ただし、まだjenkinsで使用するrbenvを未インストールの場合だと、Rake Versionにパスを追加できないので、あらかじめrbenvインストール用にjobを走らせる必要がある。

12
15
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
15