2016-03-03 103 views
1

Cygwin安裝在我的windows中,並且能夠使用cmd提示符執行sh文件。 同樣的Cygwin插件已經安裝在jenkins中,它也運行在windows中。 我在jenkins中創建了一個工作構建step-> execute shell命令我正在執行我正在面臨的工作異常時執行的命令爲sh /cygdrive/d/539707/data/getchanges/gymBuild.sh如何從windows上運行的jenkins執行sh文件

注1:在詹金斯/配置/下殼我沒有提到任何路徑

工作空間] $ SH -xe d:\ 539707 \ Tomcat的7.0.12 \ TEMP \ hudson4624102689815543789.sh致命錯誤: 命令執行失敗java.io.IOException:無法運行程序「sh」 (在目錄「C:\ Users \ 539707.jenkins \ jobs \ Test_Gym \ workspace」中): CreateProcess error = 2,系統找不到在 指定的文件java.lang.ProcessBuilder.start(ProcessBuilder.java:1047)at hudson.Proc $ LocalProc。(Proc.java:244)at hudson.Proc $ L ocalProc(Proc.java:216)在 hudson.Launcher $ LocalLauncher.launch(Launcher.java:815)在 hudson.plugins.cygpath.CygpathLauncherDecorator $ 1.launch(CygpathLauncherDecorator.java:66) 在hudson.Launcher $ ProcStarter.start(Launcher.java:381)在 hudson.tasks.CommandInterpreter.perform(CommandInterpreter.java:95) 在 hudson.tasks.CommandInterpreter.perform(CommandInterpreter.java:64) 在hudson.tasks.BuildStepMonitor $ 1.perform(BuildStepMonitor.java:20) 在 hudson.model.AbstractBuild $ AbstractBuildExecution.perform(AbstractBuild.java:782) 在hudson.model.Build $ BuildExecution.build(Build.java:205)在 哈德森.model.Build $ BuildExecution.doRun(Build.java :162)at hudson.model.AbstractBuild $ AbstractBuildExecution.run(AbstractBuild.java:534) at hudson.model.Run.execute(Run.java:1738)at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java :43)在 hudson.model.ResourceController.execute(ResourceController.java:98) 在hudson.model.Executor.run(Executor.java:410)產生的原因: java.io.IOException的:CreateProcess的錯誤= 2,系統無法找到在java.lang.ProcessImpl.create(Native Method)指定的 文件 java.lang.ProcessImpl。(ProcessImpl.java:385)at java.lang.ProcessImpl.start(ProcessImpl.java:136 )在 java.lang.ProcessBuilder.start(ProcessBuilder.java:1028)... 16更多 構建步驟'執行殼」標記構建爲失敗

成品:FAILURE

注2:在詹金斯/配置/下殼我提到C:\ cygwin的\ BIN \ mintty.exe

之後,下面是輸出

$ C:\ cygwin的\ BIN \ cygpath -w C:\ cygwin的\ BIN \ mintty.exe [工作空間] $ C:\ cygwin的\ BIN \ mintty.exe -xe d:\ 539707 \ tomcat-7.0.12 \ temp \ hudson4745164988293910592.sh /usr/bin/mintty:未知選項'-x'嘗試'--help'獲取更多 信息。構建步驟「執行shell」標記建立爲故障

成品:未能

請建議如何從詹金斯在Windows

+0

mintty是不是一個外殼,它是一個TE終端模擬器。作爲一個shell,你必須指定your_cygwin_home \ bin \ bash.exe的路徑。看看[Cygpath Plugin](https://wiki.jenkins-ci.org/display/JENKINS/Cygpath+Plugin),它可能與你的情況有關。 – izzekil

回答

0

這裏運行的解決方案執行的sh文件:到cygwin_home殼牌可執行文件路徑\ bin \ sh並在jenkins中構建step-> execute shell命令給出文件名ex * .sh或清除Shell可執行文件路徑並在jenkins中構建step-> execute windows批處理命令sh path * .sh

0

對於每個windows slave您可以執行以下操作將cygwin添加到路徑中suming是你的奴隸已經cygwin的已安裝

  • 詹金斯 - 管理詹金斯 - 管理節點
  • 節點 - 配置
  • 環境變量:名稱:PATH價值:$ key-value對
  • 添加名單{PATH};路徑到cygwin的\斌

例如,名稱:PATH值:$ {PATH}; d:\工具\ cygwin的\ BIN

+0

不,我錯了。一個節點做這個,另一個失敗。我知道做這項工作的唯一方法是:修改系統環境以在路徑中包含cygwin/bin,重新啓動方框以確保執行服務的系統用戶接受更改 –