Jenkins não conseguiu localizar o Cygwin

1

minha tarefa do Jenkins falha, pois é exibida a seguinte mensagem de erro:

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

Estou executando o Jenkins no Windows e quero executar os scripts neste repositório do github: link

Eu tenho o caminho do programa shell Jenkins definido como: C: \ cygwin64 \ bin \ bash

Estou preso neste momento, o que posso fazer para resolver este problema?

    
por Richard 19.01.2015 / 13:56

1 resposta

0

OK, vou postar essa solução em alguns lugares, pois isso é o que funcionou para mim e esse problema aparece em algumas perguntas. Infelizmente a solução requer alguma edição do registro.

Solução 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"

O raciocínio

link

É o código Jenkins para como ele encontra o Cygwin. A linha 115 é o início de um loop for no qual aparece inicialmente no SOFTWARE \ Wow6432Node e, em seguida, no SOFTWARE para o diretório Cygwin. No meu caso, eu já tinha "SOFTWARE \ Cygwin \ setup \ rootdir Apenas parece não ser capaz de encontrá-lo. Perigo que há algum problema em que sai do loop cedo ou não verifica o diretório de software corretamente. Usando a solução postado acima é um trabalho desagradável em torno deste problema.

    
por 09.02.2017 / 14:38