Jenkins на Mac, PATH не установлен правильно, нет/usr/local/bin
Недавно я установил Дженкинса, используя Homebrew. Я также установил Mercurial, используя Homebrew.
Я могу успешно клонировать hg-репо просто отлично - от терминала. Но если я попытаюсь сделать то же самое, что и часть работы в Дженкинсе, это терпит неудачу.
Итак, по заданию я сказал Дженкинсу запустить оболочку script "echo $PATH". Разумеется, путь "/usr/local/bin" не существует. Если я выполняю ту же команду из терминала, она там.
Итак, каков наилучший способ изменить PATH так, чтобы Дженкинс тянул ту же самую PATH, которую я использую, когда я повторяю ее из терминала? Обратите внимание, что Jenkins работает с той же учетной записью пользователя, что и я, чтобы выполнить эти тесты, поэтому я не могу понять, почему это происходит.
Спасибо.
Ответы
Ответ 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 либо с помощью
Ответ 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 безголовый.