Сценарий оболочки не зарегистрирован в матричном проекте - PullRequest
1 голос
/ 02 февраля 2012

У меня есть простой матричный проект, созданный с помощью Jenkins.

Я пытаюсь выполнить простой сценарий оболочки. Перед этим я запускаю svn checkout, чтобы получить исходники. Я пробовал много способов выполнить скрипт оболочки, но все не работает.
Это означает, что я не вижу вывод сценария оболочки.

Следующие строки, которые я пытался выполнить:

_make.sh
./_make.sh
bash -ex _make.sh

#!/bin/sh
./_make.sh

Я вручную выполнил chmod'ом файл ( _make.sh ) на 755, но это не имеет значения.

Спасибо за любые советы.

EDIT:
Я всегда получаю следующий вывод:

Started by user anonymous
Building in workspace /var/lib/jenkins/jobs/ABC/workspace
Triggering all
all completed with result FAILURE
Finished: FAILURE

_make.sh

#!/bin/bash

echo "A" > test

g++ -c src/*.cc src/*.h -pthread -D_REENTRANT  -I"gtkmm/include/gtkmm-2.4" -I"gtkmm/lib/gtkmm-2.4/include" -I"gtkmm/include/giomm-2.4" -I"gtkmm/lib/giomm-2.4/include" -I"gtkmm/include/pangomm-1.4" -I"gtkmm/lib/pangomm-1.4/include" -I"gtkmm/include/gtk-2.0" -I"gtkmm/include/gtk-unix-print-2.0" -I"gtkmm/include/atkmm-1.6" -I"gtkmm/include/gdkmm-2.4" -I"gtkmm/lib/gdkmm-2.4/include" -I"gtkmm/include/glibmm-2.4" -I"gtkmm/lib/glibmm-2.4/include" -I"gtkmm/include/glib-2.0" -I"gtkmm/lib/glib-2.0/include" -I"gtkmm/include/sigc++-2.0" -I"gtkmm/lib/sigc++-2.0/include" -I"gtkmm/include/cairomm-1.0" -I"gtkmm/lib/cairomm-1.0/include" -I"gtkmm/include/pango-1.0" -I"gtkmm/include/cairo" -I"gtkmm/include/pixman-1" -I"gtkmm/include/freetype2" -I"gtkmm/include/directfb" -I"gtkmm/include/libpng12" -I"gtkmm/lib/gtk-2.0/include" -I"gtkmm/include/atk-1.0" -I"gtkmm/include/gio-unix-2.0" -I"gtkmm/include/fontconfig" -I"gtkmm/include" -D FREEGLUT_STATIC -I"freeglut/include/GL" -I"freeglut/include" -I"freeglut/include" -I"DevIL/include" -I"mysql/include" -I"lib3ds" -mconsole

g++ *.o -o test.exe -pthread -L"gtkmm/lib"-lgtkmm-2.4 -latkmm-1.6 -lgdkmm-2.4 -lgiomm-2.4 -lpangomm-1.4 -lgtk-x11-2.0 -lglibmm-2.4 -lcairomm-1.0 -lsigc-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lgdk_pixbuf-2.0 -lm -lpangocairo-1.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0 -L"freeglut/lib" -L"DevIL/lib" -L"lib3ds/lib3ds/.libs" -L"gtkglextmm/gtkglext/gtkmm/gl/.libs" -L"gtkglextmm/gdkglext/gdkmm/gl/.libs" -L"mysql/lib/opt" -l3ds -lgtkglextmm-win32-1.2-0 -lgdkglextmm-win32-1.2-0 -lmysql -lfreeglut -lDevIL -lilut -lfreeglut_static -lopengl32 -lwinmm -lgdi32 -lws2_32 -Wl,--subsystem,windows -mconsole

Ответы [ 2 ]

2 голосов
/ 02 февраля 2012

Вопрос: Ваш скрипт также извлечен из Subversion?

=====

Убедитесь, что _make.sh действительно находится в вашей рабочей области. Рабочая область матрицы находится по адресу:

http://yourserver.com/jenkins/jobs/<JOBNAME>/label=<SLAVEorLABEL-NAME>/ws/

Предполагая, что это так,

В вашей «Execute Shell» попробуйте следующее:

source ./_make.sh

или

source ./_make.sh 2>&1

В вашем _make.sh убедитесь, что у вас есть #! / Bin / bash или #! / Bin / sh в зависимости от того, что вам нужно.

Еще одна вещь, которую вы можете попробовать проверить, работает ли скрипт вообще, - это добавить следующую строку в скрипт и запустить его:

echo "A" > test

Если после запуска скрипта в рабочей области существует тест файла, и он содержит «A», ваш скрипт выполняется.

Наконец, есть еще одна причина, по которой ваш скрипт не будет выполняться, хотя обычно это приводит к ошибке.

Если вы создали свой скрипт в Windows, вы можете использовать неправильные окончания строк. Попробуйте:

dos2unix _make.sh

Это преобразует окончания строк в стиль Unix. Я сталкивался с этой проблемой, но для меня она показала ошибку.

1 голос
/ 03 февраля 2012

Насколько я могу судить по вашему выводу, это из родительского задания, а не из подзадачи матрицы (в противном случае было бы сказано "Запущен вышестоящий проект ...").

Вам нужночтобы перейти к выводу дочерней консоли - и тогда я уверен, что станет понятно, почему он не работает.Вы попадаете в дочерний проект, щелкая его шарик в родительском проекте, а затем ищите ссылку «Консольный вывод».

Или вы можете попытаться добраться до него вручную - он будет где-то в [jenkins_root]/jobs/[parent_job_name]/configurations/**/builds/[build_id]/log(где ** означает любой многоуровневый уровень дерева каталогов).

Обратите внимание, что, как подсказывает @Sagar, ваши файлы должны извлекаться в рабочую область дочернего проекта, а не в родительский.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...