У меня есть Windows 8 jenkins slave (действительно более одного), и я хочу иметь задачу, которая клонирует зеркало git-репозитория, если оно не существует и всегда получает последние.Почему эта работа дженкинсов никогда не заканчивается?
Я получил это 'выполнить окна пакетное' шаг:
if not exist "server-reference" (
git clone --mirror [email protected]:something/somewhere.git server-reference
)
pushd server-reference
git fetch --all
popd
exit /B %ERRORLEVEL%
Выход консоли на работу добирается до этой точки
C: \ Дженкинс \ рабочее место \ вещи \ Сервер- ссылка> мерзавец принести --all
выборка
происхождения
и никогда не заканчивается
Если я переключу выход над выборкой, я получу ожидаемый выход.
И если я запускаю команды командного файла как пользователь jenkins в окне окна, все работает так, как ожидалось. Так что я (думаю я) знаю, что git fetch --all
работает на ведомом без запроса ввода
Как изменить этот сценарий так, что он завершает, когда Дженкинс запускает его?
как предполагают, я думаю, что ваш пользователь jenkins не настроен на чтение репо, поэтому сценарий ждет ввода, который он не может получить. попробуйте войти в систему как пользователь jenkins и запустить скрипт вручную (если вы можете сделать это в Windows). В качестве альтернативы используйте git-плагин https://wiki.jenkins-ci.org/display/JENKINS/Git+Plugin – KeepCalmAndCarryOn
У меня была аналогичная проблема. В моем случае проблема заключалась в том, что консоль запрашивала учетные данные для репо. Запрос на это не отображался в выходной консоли jenkins. Таким образом, работа была начата и вечно ждала имя пользователя/пароль. – MichaelS
Обновлены, чтобы уточнить, что я уверен, что раб Jenkins использует известного пользователя и этот пользователь может запустить Git –