web-dev-qa-db-ja.com

Jenkins Buildを実行できません-バンドル:「コマンドが見つかりません」

私は現在、キュウリのタスクのいくつかに対してジェンキンスビルドを実行しようとしています。 Bundlerを使用して、すべてのgemがインストールされました。宝石はベンダーフォルダーに保存されます。

しかし、シェルの実行ビルドステップでbundle install --deploymentを実行しようとすると、次のエラーが発生します。

Started by user anonymous
Building in workspace /Users/Shared/Jenkins/Home/jobs/cukes/workspace
[workspace] $ /bin/sh -xe/var/folders/zz/zyxvpxvq6csfxvn_n0000004000001/T/hudson4461284045505361460.sh
+ bundle install --deployment
/var/folders/zz/zyxvpxvq6csfxvn_n0000004000001/T/hudson4461284045505361460.sh: line 2: bundle: command not found
Build step 'Execute Shell' marked build as failure
Finished: FAILURE

これは私を夢中にさせています!私のローカルマシンで問題なく動作します。ジェンキンスが私の宝石を見ることができないのはなぜですか?

どんな助けでも素晴らしいでしょう!

乾杯、ジョン

14

Jenkinsのインストール方法によっては、別のユーザー、通常はユーザーjenkinsとして実行されている場合があります。 bundle/usr/local/binのようにデフォルトのPATHにない非標準のディレクトリにインストールした場合は、次のことを行う必要があります。

  • /usr/local/binをjenkinsユーザーのPATHに追加します(〜jenkins/.bashrcを確認してください)または
  • Jenkinsグローバル構成(またはスレーブで構築する場合はスレーブ構成)でPATH環境変数を構成します。
  • 絶対パス名を使用してbundleを参照するようにビルドスクリプトを変更します。
11
sti

バンドルが/usr/local/bin/bundleにインストールされている場合(which bundleでこれを決定します)、次のように/usr/binにバンドルするシンボリックリンクを追加できます。

ln -s /usr/local/bin/bundle /usr/bin/bundle

3
Dan Herman

最初に確認すること:

  • Jenkinsが実行されているマシンにbundleがインストールされていることを確認してください。
  • インストールされている場合は、Jenkinsを実行するユーザーのパス上にあることを確認してください

(パス/環境を確認するには:envを実行するシェルビルドステップを挿入します)

2
malenkiy_scot

Getting Started Guide で推奨されている方法なので、私は元々warファイル経由でインストールしていました。ただし、ユーザーハンドブックを見ると、 Jenkinsをインストールする にはおそらくより良い方法があることが明らかになります。

次の方法で、macOS上のJenkinsのWARファイルをアンインストールしました。

  1. .warファイルを削除します。
  2. 〜/ .jenkinsディレクトリを削除します。

次に home-brew経由で再インストール し、bundleが機能し始めました。

0
Senseful