Как выполнить сценарий оболочки в Jenkinsfile?
Я сохраняю файл сценария оболочки с именем urltest.sh
в /var/lib/jenkins
и выполняю файл из сборки jenkins
.
Когда я выполняю сборку, она терпит неудачу.
The Environment Variables are -
HOME - /var/lib/jenkins ;
JENKINS_HOME - /var/lib/jenkins
Консольный выход поступает следующим образом:
Started by user anonymous
Building in workspace /var/lib/jenkins/workspace/AutoScript
[AutoScript] $ /bin/sh -xe /tmp/hudson2777728063740604479.sh
+ sh urltest.sh
sh: 0: Can't open urltest.sh
Build step 'Execute shell' marked build as failure
Finished: FAILURE
Я запутался, где должен хранить файл сценария оболочки так, чтобы он выполнялся.
Ответы
Ответ 1
Если вы видите сообщение об ошибке, оно говорит
Построение в рабочей области /var/lib/jenkins/workspace/AutoScript
и в соответствии с вашими комментариями вы разместили urltest.sh в
/вар/Lib/Дженкинс
Следовательно, Дженкинс не может найти файл.
На шаге сборки сделайте это, он будет работать
cd # which will point to /var/lib/jenkins
./urltest.sh # it will run your script
Если он все еще не работает, попробуйте обработать файл, так как пользователь jenkin может не иметь разрешения на файл, но я думаю, что если вы сделаете шаг выше, вы сможете запустить.
Ответ 2
Основываясь на количестве просмотров этого вопроса, похоже, что многие люди посещают это, чтобы посмотреть, как настроить работу, выполняющую скрипт оболочки.
Это шаги для выполнения сценария оболочки в Jenkins:
- На главной странице Дженкинса выберите "Новый элемент".
- Введите имя элемента, например "моя работа скриптового сценария", и выберите проект Freestyle. Нажмите OK.
- На странице конфигурации в блоке Build щелкните раскрывающийся список "Добавить сборку" и выберите "Выполнить оболочку".
-
В текстовом поле вы можете вставить скрипт или указать, как запустить существующий скрипт. Поэтому вы можете сказать:
#!/bin/bash
echo "hello, today is $(date)" > /tmp/jenkins_test
или просто
/path/to/your/script.sh
-
Нажмите "Сохранить".
Теперь вновь созданная работа должна появиться на главной странице Дженкинса вместе с другими. Откройте его и выберите "Создать сейчас", чтобы узнать, работает ли он. Как только он закончит, выберите конкретную сборку из истории сборки и прочитайте вывод консоли, чтобы убедиться, что все произошло по желанию.
Вы можете получить более подробную информацию в документе. Создайте задание сценария оболочки Jenkins в GitHub.
Ответ 3
Там управляемый Script плагин, который обеспечивает простой способ управления пользовательскими скриптами. Он также добавляет шаг шага сборки, который позволяет вам выбрать, какой пользователь Script выполнить.
Ответ 4
Предыдущие ответы верны, но вот еще один способ сделать это и несколько советов:
Вариант № 1 Перейдите к вам, работайте в Jenkins и найдите "add build step", а затем просто скопируйте и вставьте свой скрипт там
Вариант № 2 Перейдите к Jenkins и сделайте то же самое снова "добавьте шаг сборки", но на этот раз положите полный путь для своего скрипта в примере:./usr/somewhere/helloWorld.sh
![enter image description here]()
вещи для просмотра/советы:
- Переменные среды, если ваша работа выполняется одновременно, вам нужно беспокоиться о проблемах параллелизма. Одно задание может устанавливать значение переменных среды, а следующее может использовать значение или принимать некоторые действия на основе этого неверно.
- Убедитесь, что все пути полностью квалифицированы
- Подумайте о logging/var/log или где-нибудь, чтобы у вас также было что-то, что можно было бы сделать на сервере (необязательно)
- проблема с пространством и разрешения, нехватка места и проблемы с разрешениями очень распространены в среде linux
- Оповещение и убедитесь, что ваш сценарий/задание не удается выполнить задания jenkin, когда ваш скрипт не работает
Ответ 5
Обычно такие скрипты хранятся в системе управления версиями. Задание Jenkins будет настроено для проверки/клонирования хранилища vc. Это как магия.