Не удается запустить Jenkins Build - bundle: "команда не найдена"

В настоящее время я пытаюсь запустить сборник jenkins для некоторых моих задач огурца. Все мои драгоценные камни были установлены с помощью Bundler. Драгоценные камни хранятся в папке поставщика.

Однако, когда я пытаюсь запустить 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

Это сводит меня с ума! Он работает на моей локальной машине без проблем. Почему Дженкинс не видит мои драгоценные камни?

Любая помощь будет замечательной!

Cheers, Джон

Ответ 1

В зависимости от того, как вы установили Jenkins, он может работать как отдельный пользователь, обычно как пользователь jenkins. Если вы установили bundle в нестандартный каталог, который не находится в PATH по умолчанию, например /usr/local/bin, вам необходимо:

  • Добавьте /usr/local/bin в PATH пользователя jenkins (проверьте ~ jenkins/.bashrc) или
  • Настроить переменную среды PATH в глобальной конфигурации Jenkins (или подчиненную конфигурацию при построении на подчиненном устройстве) или
  • Измените конструкцию script, чтобы обратиться к bundle, используя полное имя пути.

Ответ 2

Если пакет установлен в /usr/local/bin/bundle (определите это с помощью which bundle), вы можете просто добавить символическую ссылку для пакета в /usr/bin следующим образом:

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

Ответ 3

Первое, что нужно проверить:

  • Убедитесь, что bundle установлен на машине, где работает Jenkins.
  • Если он установлен, убедитесь, что он находится на пути для пользователя, под которым работает Jenkins

(Чтобы проверить путь/среду: вставить шаг сборки оболочки, который запускается env)

Ответ 4

Для меня я изначально установил его через файл war, как рекомендовано в руководстве по началу работы. Тем не менее, из руководства пользователя становится гораздо яснее, что, возможно, существуют более эффективные способы установки Jenkins.

В итоге я удалил WAR файл Jenkins на macOS:

  1. Удаление файла .war.
  2. Удаление каталога ~/.jenkins.

Затем я переустанавливал через home-brew, и bundle начала работать.

Ответ 5

Вы можете увидеть, где находится bundle, запустив which bundle и запустив команду bundle

Ответ 6

В моем случае я добавил эту строку в первый скрипт:

#!/bin/bash -l