Я использую Jenkins для запуска и управления серией заданий на импорт. Я хочу поместить свой скрипт импорта в Github, и когда Дженкинс создаст задание, он должен (а) вытащить этот контролируемый версией скрипт из Github и (б) запустить скрипт.
Проблема, с которой я сталкиваюсь, заключается в том, что я не знаю, как ссылаться на имя скрипта для запуска в задании. Я предполагаю, что исходный код помещается в каталог рабочей области. Это предположение верно? (Если бы только была документация!)
Вот что я сделал до сих пор:
- Установил Jenkins (очевидно) на моем Windows Server (нет, у меня не было выбора по этому поводу)
- Создал репозиторий в моей учетной записи на github и поместил в него мой код
- Публично на https://github.com/mcholl/SARS-Import/
- Вы увидите, что у меня есть два сценария, roottest.py и omniture-video \ test.py. Я уверен, что этот код защищен патентом Apple :)
- Идея в том, что я хотел бы запустить roottest.py
- Установил плагин Github
- Создал работу следующим образом:
- Название проекта = "Тестирование Github Integration"
- Проект GitHub: https://github.com/mcholl/SARS-Import.git/
- Добавьте пакетную команду Windows: python roottest.py
- Выполнить работу вручную
Однако я получаю сообщение об ошибке, что файл не может быть найден. Это странно, поскольку я предполагаю, что рабочий процесс будет «вытягивать локальную копию источника в каталог ... (Job) / workspace /, а затем запускать пакетную команду в контексте каталога рабочей области.
Вот полный вывод консоли:
Создано пользователем anonymous Сборка в рабочем пространстве C: \ Program Files (x86) \ Jenkins \ jobs \ Тестирование интеграции Github \ workspace [workspace] $ cmd / c call 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», помеченный как сборка как сбой Завершено: СБОЙ
Очевидно, я ожидал увидеть результаты моего оператора печати в консоли.
Что я испортил? И почему мой сценарий уже не там?
Ответы:
Для моей сборки (на хосте Linux) я делаю что-то вроде этого (в качестве шага сборки в Jenkins), чтобы выполнить скрипт сборки из только что извлеченного рабочего пространства:
Выполнить команду оболочки:
Я предполагаю, что это будет работать аналогично в Windows, за исключением того, что вы, конечно, будете использовать \ вместо / и использовать python, а не sh для выполнения скрипта.
источник
Вы можете написать две строки в вашей сборке:
источник
Вы можете сохранить некоторый скрипт в Git, например test.sh:
Затем в поле ввода «Выполнить оболочку» поместите импорт этого скрипта и вызовите «_test_func»:
Результат:
источник