Дженкинс не смог найти Cygwin

1491
Richard

моя работа Jenkins терпит неудачу, поскольку это дает это сообщение об ошибках:

hudson.util.IOException2: Failed to locate Cygwin installation. Is Cygwin installed? at hudson.plugins.cygpath.CygpathLauncherDecorator$GetCygpathTask.getCygwinRoot(CygpathLauncherDecorator.java:138) at hudson.plugins.cygpath.CygpathLauncherDecorator$GetCygpathTask.call(CygpathLauncherDecorator.java:142) at hudson.plugins.cygpath.CygpathLauncherDecorator$GetCygpathTask.call(CygpathLauncherDecorator.java:112) at hudson.remoting.LocalChannel.call(LocalChannel.java:45) at hudson.plugins.cygpath.CygpathLauncherDecorator$1.getCygpathExe(CygpathLauncherDecorator.java:104) at hudson.plugins.cygpath.CygpathLauncherDecorator$1.cygpath(CygpathLauncherDecorator.java:86) at hudson.plugins.cygpath.CygpathLauncherDecorator$1.launch(CygpathLauncherDecorator.java:65) at hudson.Launcher$ProcStarter.start(Launcher.java:381) at hudson.tasks.CommandInterpreter.perform(CommandInterpreter.java:97) at hudson.tasks.CommandInterpreter.perform(CommandInterpreter.java:66) at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20) at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:770) at hudson.model.Build$BuildExecution.build(Build.java:199) at hudson.model.Build$BuildExecution.doRun(Build.java:160) at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:533) at hudson.model.Run.execute(Run.java:1759) at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43) at hudson.model.ResourceController.execute(ResourceController.java:89) at hudson.model.Executor.run(Executor.java:240) Caused by: hudson.util.jna.JnaException: Win32 error: 2 - The system cannot find the file specified at hudson.util.jna.RegistryKey.check(RegistryKey.java:124) at hudson.util.jna.RegistryKey.open(RegistryKey.java:223) at hudson.util.jna.RegistryKey.openReadonly(RegistryKey.java:218) at hudson.plugins.cygpath.CygpathLauncherDecorator$GetCygpathTask.getCygwinRoot(CygpathLauncherDecorator.java:127) ... 18 more 

Я запускаю Jenkins на Windows и хочу запустить сценарии в этом репозитории github: https://github.com/y0u-s/test

У меня есть путь к программе оболочки Jenkins: C: \ cygwin64 \ bin \ bash

Я застрял в этом прямо сейчас, что я могу сделать, чтобы решить эту проблему?

1
Добавьте DLL Cygwin где-нибудь в пути. Romeo Ninov 9 лет назад 0
В моих системных переменных Windows или в конфигурации Jenkins? А какой файл DLL? Cygwin1.dll? Richard 9 лет назад 0
Насколько я знаю, Jenkins использует Windows PATH, поэтому поместите cygwin1.dll в PATH или в тот же каталог, где находится сам Jenkins jar Romeo Ninov 9 лет назад 0
Нет, я все еще получаю сообщение об ошибке. Может ли это быть что-то еще? Richard 9 лет назад 0
Вы попробовали этот плагин: https://wiki.jenkins-ci.org/display/JENKINS/Cygpath+Plugin Romeo Ninov 9 лет назад 0
Да, я уже скачал это. Richard 9 лет назад 0
Проверьте аренду это обсуждение: http://stackoverflow.com/questions/731705/can-i-use-cygwin-to-script-a-hudson-build-step Romeo Ninov 9 лет назад 0
Я уже видел это обсуждение, но на самом деле я не знаю, должен ли я ставить: «#! / Bin / sh ls $ » буквально над сценарием, или же какой каталог я должен вставить в WORKSPACE? Richard 9 лет назад 0
РАБОЧЕЕ МЕСТО установлено Дженкинсом. И это указывает на рабочий каталог работы, которую вы запускаете Romeo Ninov 9 лет назад 0
Не могли бы вы проверить мой проект git и показать, что я могу сделать в моем случае? Пожалуйста, терпите меня, как я начинающий :) Richard 9 лет назад 0
Ричард, почему бы не начать работать только с CMD. У вас уже есть несколько сценариев cmd для mocha. Для сценария развертывания есть хороший в Jenkins, я уверен, что вы можете использовать Romeo Ninov 9 лет назад 0
Потому что я следовал учебнику, который, по-видимому, основан на Linux. http://code.tutsplus.com/tutorials/setting-up-continuous-integration-continuous-deployment-with-jenkins--cms-21511. Что вы имеете в виду с последней частью? Кстати, спасибо за помощь Richard 9 лет назад 0
Если вы имеете в виду процесс развертывания, это не так сложно. На целевом сервере создайте скрипт со всеми командами после ssh и перед EOF. И запустите его следующим образом: ssh user @ host -c /path/to/the/script/on/remote/host/script.sh. Так что это будет команда развертывания Romeo Ninov 9 лет назад 0
У меня уже есть что-то подобное в моей папке развертывания, как вы можете видеть в репозитории Richard 9 лет назад 0

1 ответ на вопрос

0
John Duskin

Хорошо, я собираюсь опубликовать это решение в нескольких местах, так как это то, что сработало для меня, и эта проблема появляется в паре вопросов. К сожалению, решение требует некоторого редактирования реестра.

Решение TLDR:

- Make sure cygwin is installed - Open regedit. - Go to HKEY_LOCAL_MACHINE - SOFTWARE - Wow6432Node - Right click on Wow6432Node New->Key name it Cygwin - Right click on Cygwin New->Key name it setup - Right click on setup New->String Value name it rootdir - Right click on rootdir Modify set it to your cygwin folder mine was "C:\cygwin64" 

Рассуждение

https://github.com/jenkinsci/cygpath-plugin/blob/master/src/main/java/hudson/plugins/cygpath/CygpathLauncherDecorator.java

Это код Дженкинса о том, как он находит Cygwin. Строка 115 - это начало цикла for, где она сначала выглядит в SOFTWARE \ Wow6432Node, затем в SOFTWARE для каталога Cygwin. В моем случае у меня уже было «ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ \ Cygwin \ setup \ rootdir Только, кажется, что он не может его найти. Я рискую, есть некоторая проблема, когда он выходит из цикла рано или неправильно проверяет каталог ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ. Использование решения опубликованное выше является неприятным решением этой проблемы.