Как я могу по умолчанию использовать оболочку входа для выполнения оболочки Jenkins
Я хочу использовать rvm (или rbenv/chruby, если на то пошло), чтобы выбрать разные версии ruby из моих заданий Jenkins.
По умолчанию Jenkins будет использовать /bin/sh, что на Ubuntu, тире.
Чтобы это изменить, я могу добавить
#!/bin/bash -l
В верхней части каждой оболочки выполняем функцию везде. Увидев, что это очень неприятная работа, я хотел бы установить ее где-то в центре.
Используя настройку конфигурации "Shell executable", я могу заставить ее запускать bash, добавление таких параметров, как '-l', приведет к ошибке с
"/bin/ bash -l" -xe/tmp/hudson5660076222778817826.sh FATAL: Ошибка выполнения команды java.io.IOException: не удается запустить программу "/bin/bash -l" (в каталоге "/home/jenkins/jobs/workspace/rvm-test" ): error = 2, Нет такого файла или Каталог
Я попытался использовать rvm-плагин для jenkins, но это даже не устанавливается в текущей версии.
Любые идеи?:)
Ответы
Ответ 1
-
Вы можете обойтись, создав обертку вокруг bash:
#!/bin/sh
# for ex.: /usr/local/bin/login-bash
exec /bin/bash -l "[email protected]"
-
Если вы хотите использовать рубин по умолчанию, просто используйте rvm-shell, который поставляется с rvm.
Войдите в систему как пользователь jenkins и введите:
$ which rvm-shell
/home/jenkins/.rvm/bin/rvm-shell
чтобы получить путь к rvm-оболочке.
Используйте этот путь для опции "Shell executable".