Подтвердить что ты не робот

Jenkins на Mac, PATH не установлен правильно, нет/usr/local/bin

Недавно я установил Дженкинса, используя Homebrew. Я также установил Mercurial, используя Homebrew.

Я могу успешно клонировать hg-репо просто отлично - от терминала. Но если я попытаюсь сделать то же самое, что и часть работы в Дженкинсе, это терпит неудачу.

Итак, по заданию я сказал Дженкинсу запустить оболочку script "echo $PATH". Разумеется, путь "/usr/local/bin" не существует. Если я выполняю ту же команду из терминала, она там.

Итак, каков наилучший способ изменить PATH так, чтобы Дженкинс тянул ту же самую PATH, которую я использую, когда я повторяю ее из терминала? Обратите внимание, что Jenkins работает с той же учетной записью пользователя, что и я, чтобы выполнить эти тесты, поэтому я не могу понять, почему это происходит.

Спасибо.

4b9b3361

Ответ 1

В вашем файле .plist для запуска Jenkins вы можете установить переменную среды PATH, используя следующее:

<key>EnvironmentVariables</key>
<dict>
    <key>PATH</key>
    <string>(insert your path value here)</string>
</dict>

Это должно установить PATH на все, что вам нужно.

Ответ 2

Вы можете установить PATH в файле launchd.conf. Подробнее см. здесь. Обратите внимание, что man launchctl говорит, что "команды могут быть сохранены в $HOME/.launchd.conf или /etc/launchd.conf для чтения в момент запуска startd", поэтому вы, вероятно, можете создать ".launchd.conf" в своем home directory и использовать инструкции по ссылке с этим файлом. Но насколько я знаю в файле launchd.conf, вы не можете добавить каталог в PATH, вы можете просто переписать PATH.

Вы также можете увидеть здесь для решения, используя каталог/etc/paths.d

Ответ 3

По какой-то причине Jenkins не поддерживает /usr/local/bin в PATH при подключении к ведомому. Вы можете добавить его в PATH либо с помощью

  • Добавление переменной среды в конфигурацию Node или
  • Добавление файла .bashrc в папку пользователя с помощью

    PATH="/usr/local/bin:${PATH}"
    

Ответ 4

Я обнаружил, что даже установка переменной среды PATH для node не работала для установки Hombrew Mercurial. Путь должен быть установлен, но только для фазы сборки script, а не для фазы проверки VCS. Вот что я сделал.

  • Перейдите в Manage Jenkins -> Configure System
  • Добавить новую установку Mercurial
  • Назовите его как хотите (я назвал my build-mac)
  • Для Installation Directory я положил /usr/local
  • Параметр Executable был предварительно установлен в INSTALLATION/bin/hg, поэтому я просто оставил его на этом.
  • Все остальное здесь можно оставить пустым
  • Зайдите в свою работу и отредактируйте конфигурацию
  • В Source Code Management установите Mercurial Version на добавленную вами меркуриальную установку.
  • Сохранить
  • $$$

Надеюсь, что кто-то еще столкнется с этой проблемой, теперь, когда нам не разрешено (по умолчанию так или иначе) делать что-либо внутри /usr/bin больше. Раньше я бы просто связал hg там, но теперь с новой функцией "Защита целостности системы", которая уже не так тривиальна в задаче и еще сложнее, если ваш подчиненный Mac безголовый.