Назад | Перейти на главную страницу

Как я могу заставить Дженкинса выполнить сценарий, извлеченный из Git?

Я использую Jenkins для запуска и управления серией заданий импорта. Я хочу поместить свой скрипт импорта в Github, и когда Дженкинс построит задание, он должен (а) вытащить этот скрипт с управляемой версией из Github и (б) запустить скрипт.

Проблема, с которой я столкнулся, заключается в том, что я не знаю, как ссылаться на имя сценария для запуска в рамках задания. Я предполагаю, что исходный код помещен в каталог рабочей области. Это предположение верно? (Если бы была документация!)

Вот что я сделал до сих пор:

  1. Установил Jenkins (очевидно) на моем Windows Server (нет, у меня не было выбора)
  2. Создал репозиторий в моей учетной записи github и поместил в него свой код
    • Это публично в https://github.com/mcholl/SARS-Import/
    • Вы увидите, что у меня есть два сценария: roottest.py и omniture-video \ test.py. Код там запатентован Apple, я уверен :)
    • Идея в том, что я хочу запустить roottest.py
  3. Установлен Плагин Github
  4. Создал работу следующим образом:
    • Название проекта = "Тестирование интеграции с Github"
    • Проект GitHub: https://github.com/mcholl/SARS-Import.git/
    • Добавьте пакетную команду Windows: python roottest.py
  5. Выполнить задание вручную

Однако я получаю сообщение об ошибке, что файл не может быть найден. Это странно, потому что я предполагаю, что рабочий процесс будет «вытащить локальную копию источника в каталог ... (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