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

Как выполнить сценарий оболочки в 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

Я запутался, где должен хранить файл сценария оболочки так, чтобы он выполнялся.

4b9b3361

Ответ 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 enter image description here

вещи для просмотра/советы:

  • Переменные среды, если ваша работа выполняется одновременно, вам нужно беспокоиться о проблемах параллелизма. Одно задание может устанавливать значение переменных среды, а следующее может использовать значение или принимать некоторые действия на основе этого неверно.
  • Убедитесь, что все пути полностью квалифицированы
  • Подумайте о logging/var/log или где-нибудь, чтобы у вас также было что-то, что можно было бы сделать на сервере (необязательно)
  • проблема с пространством и разрешения, нехватка места и проблемы с разрешениями очень распространены в среде linux
  • Оповещение и убедитесь, что ваш сценарий/задание не удается выполнить задания jenkin, когда ваш скрипт не работает

Ответ 5

Обычно такие скрипты хранятся в системе управления версиями. Задание Jenkins будет настроено для проверки/клонирования хранилища vc. Это как магия.