2015-01-19 2 views
0

Я хочу запустить сценарии оболочки с Jenkins на окнах с Cygwin, но я получаю это сообщение об ошибке. У меня есть путь к программе оболочки: C: \ cygwin64 \ bin \ bash.exe. И моя команда оболочки - это: npm install ./script/test ./script/deploy.Jenkins не удалось найти Cygwin

Это мой репозиторий github: https://github.com/y0u-s/test.

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 

Я как бы застрял прямо сейчас, что мне делать?

Благодаря

ответ

0

Вы можете запускать скрипты без Cygwin. Просто добавьте этот код в свой файл build.xml

apply plugin: 'maven' 

group = "de.myapp" 
version = '2.2.0' 

android { 
    ... 
} 

uploadArchives { 
repositories { 
    mavenDeployer { 
     maven { 
      name "snapshot_repo" 
      url "http://192.168.178.85:8081/nexus/content/repositories/myapp_snapshots" 

      credentials { 
       username "admin" 
       password "admin123" 
      } 
     } 
    } 
} 
} 

Надеюсь, вам это помогло. (или вы можете прекратить свое образование).

0

Комплект в вашем Jenkins Shell-исполнитель переменная с (C:\cygwin64\bin\bash).

Установить переменную CYGWIN в переменной System (CYGWIN=nodosfilewarning)

Убедитесь, что вы положили (#!/bin/bash) в начале команды оболочки

0

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

TLDR Решение:

- 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

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

Смежные вопросы