Я использую Jenkins для запуска и управления серией заданий импорта. Я хочу поместить свой скрипт импорта в Github, и когда Дженкинс построит задание, он должен (а) вытащить этот скрипт с управляемой версией из Github и (б) запустить скрипт.
Проблема, с которой я столкнулся, заключается в том, что я не знаю, как ссылаться на имя сценария для запуска в рамках задания. Я предполагаю, что исходный код помещен в каталог рабочей области. Это предположение верно? (Если бы была документация!)
Вот что я сделал до сих пор:
Однако я получаю сообщение об ошибке, что файл не может быть найден. Это странно, потому что я предполагаю, что рабочий процесс будет «вытащить локальную копию источника в каталог ... (Job) / workspace /, а затем запустить пакетную команду в контексте каталога рабочей области.
Вот полный вывод консоли:
Запущено анонимным пользователем. Создание в рабочей области C: \ Program Files (x86) \ Jenkins \ jobs \ Testing Github Integration \ workspace [рабочая область] $ cmd / c вызов C: \ Windows \ TEMP \ hudson1966342425043540895.bat
C: \ Program Files (x86) \ Jenkins \ jobs \ Testing Github Integration \ workspace> python roottest.py python: невозможно открыть файл 'roottest.py': [Errno 2] Нет такого файла или каталога
C: \ Program Files (x86) \ Jenkins \ jobs \ Testing Github Integration \ workspace> exit 2 Шаг сборки «Выполнить пакетную команду Windows» помечен как сбой сборки Завершено: FAILURE
Очевидно, я ожидал просто увидеть результаты моего оператора печати в консоли.
Что я напортачил? И почему моего сценария еще нет?
Для моей сборки (на хосте Linux) я делаю что-то вроде этого (в качестве шага сборки в Jenkins), чтобы выполнить сценарий сборки из только что проверенной рабочей области:
Выполнить команду оболочки:
sh -x $WORKSPACE/build/myproject.build
Я предполагаю, что это будет работать аналогично в Windows, за исключением, конечно, использования \, а не /, и вы используете python вместо sh для выполнения вашего скрипта.
Вы можете написать в своей сборке две строки:
chmod 777 ./my_script.sh
./my_script.sh
Вы можете сохранить какой-нибудь скрипт в Git, например test.sh:
#!/bin/bash
_test_func(){
echo 'test'
}
Затем во вводе «Выполнить оболочку» поместите импорт этого скрипта и вызовите «_test_func»:
source test.sh
_test_func
Результат:
+ source test.sh
+ _test_func
test